Excel sheet as an attachment to the mail box
Hi,
i need to send an excel sheet as an attachement to the outlook mail box..
is any function module is there which serves my requirement? or if any other way is there pls let me know.
thanks..
Here is some sample code.
report zrich_0001.
parameters: p_email type somlreci1-receiver
default [email protected]'.
data: begin of it001 occurs 0,
bukrs type t001-bukrs,
butxt type t001-butxt,
end of it001.
data: imessage type standard table of solisti1 with header line,
iattach type standard table of solisti1 with header line,
ipacking_list like sopcklsti1 occurs 0 with header line,
ireceivers like somlreci1 occurs 0 with header line,
iattachment like solisti1 occurs 0 with header line.
start-of-selection.
select bukrs butxt into table it001 from t001.
* Populate table with detaisl to be entered into .xls file
perform build_xls_data .
* Populate message body text
clear imessage. refresh imessage.
imessage = 'Please find attached excel file'.
append imessage.
* Send file by email as .xls speadsheet
perform send_email_with_xls tables imessage
iattach
using p_email
'Example Excel Attachment'
'XLS'
'TestFileName'
'CompanyCodes'.
* Form BUILD_XLS_DATA
form build_xls_data .
constants: con_cret type x value '0D', "OK for non Unicode
con_tab type x value '09'. "OK for non Unicode
*If you have Unicode check active in program attributes thnen you will
*need to declare constants as follows
*class cl_abap_char_utilities definition load.
*constants:
* con_tab type c value cl_abap_char_utilities=>HORIZONTAL_TAB,
* con_cret type c value cl_abap_char_utilities=>CR_LF.
concatenate 'BUKRS' 'BUTXT'
into iattach separated by con_tab.
concatenate con_cret iattach into iattach.
append iattach.
loop at it001.
concatenate it001-bukrs it001-butxt
into iattach separated by con_tab.
concatenate con_cret iattach into iattach.
append iattach.
endloop.
endform.
* Form SEND_EMAIL_WITH_XLS
form send_email_with_xls tables pit_message
pit_attach
using p_email
p_mtitle
p_format
p_filename
p_attdescription.
data: xdocdata like sodocchgi1,
xcnt type i.
* Fill the document data.
xdocdata-doc_size = 1.
* Populate the subject/generic message attributes
xdocdata-obj_langu = sy-langu.
xdocdata-obj_name = 'SAPRPT'.
xdocdata-obj_descr = p_mtitle .
* Fill the document data and get size of attachment
clear xdocdata.
read table iattach index xcnt.
xdocdata-doc_size =
( xcnt - 1 ) * 255 + strlen( iattach ).
xdocdata-obj_langu = sy-langu.
xdocdata-obj_name = 'SAPRPT'.
xdocdata-obj_descr = p_mtitle.
clear iattachment. refresh iattachment.
iattachment[] = pit_attach[].
* Describe the body of the message
clear ipacking_list. refresh ipacking_list.
ipacking_list-transf_bin = space.
ipacking_list-head_start = 1.
ipacking_list-head_num = 0.
ipacking_list-body_start = 1.
describe table imessage lines ipacking_list-body_num.
ipacking_list-doc_type = 'RAW'.
append ipacking_list.
* Create attachment notification
ipacking_list-transf_bin = 'X'.
ipacking_list-head_start = 1.
ipacking_list-head_num = 1.
ipacking_list-body_start = 1.
describe table iattachment lines ipacking_list-body_num.
ipacking_list-doc_type = p_format.
ipacking_list-obj_descr = p_attdescription.
ipacking_list-obj_name = p_filename.
ipacking_list-doc_size = ipacking_list-body_num * 255.
append ipacking_list.
* Add the recipients email address
clear ireceivers. refresh ireceivers.
ireceivers-receiver = p_email.
ireceivers-rec_type = 'U'.
ireceivers-com_type = 'INT'.
ireceivers-notif_del = 'X'.
ireceivers-notif_ndel = 'X'.
append ireceivers.
call function 'SO_DOCUMENT_SEND_API1'
exporting
document_data = xdocdata
put_in_outbox = 'X'
commit_work = 'X'
tables
packing_list = ipacking_list
contents_bin = iattachment
contents_txt = imessage
receivers = ireceivers
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.
endform.
Regards,
Rich Heilman
Similar Messages
-
Adapter Module Error-Sending excel file as an attachment of the mail
Hi ,
My scenario is as follows
1)I am sending an excel file as an attachment of the mail.I need to read that excel attachment as a payload.
So mail adapter is used in sender side.
To configure this, have used standard PayloadSwapBean module with proper module key.
Next to convert excel to XML another custom adapter module is being used.
Both this adapter module , I configured into the CC of sender mail adapter.
The order in which adapter modules are being used in the sender CC are as follows
1)localejbs/AF_Modules/PayloadSwapBean
2)localejbs/MDPExcelToXMLConversion
3)sap.com/com.sap.aii.adapter.mail.app/XIMailAdapterBean
MDPExcelToXMLConversion-Custom adapter module written to convert excel to xml.
I am getting the following error
exception caught during processing mail message [4899]com.sap.aii.af.lib.mp.module.ModuleException
And also,
no messages in coming MONI of PI.
Pls suggest what to do.
Thanks
AyanShabarish,
Will the ordering in which the adapter modules(In this case there are two-PayloadSwapBean & MDPExcelToXML) are appearing into Module tab of sender adapter matter?
Firstly, what is happenning
1)If I take out the custom adapter module MDPExcelToXML and put only PayloadSwapBean then it is successfully converting mail attachment into the main Payload i.e PayloadSwapBean module is working.
2)Nextly, my local code( i.e java code without including standard Module specific method like ejbActivate(),ejbPassivate(),process() etc etc.)) for MDPExcelToXML is successfuly converting the excel file into the XML file.Then I am making the local code into adapter module specific code and deploying that.
A few question arises here,
Do I need to do any specific configurations here in PI for this particular things.Maybe both the adapter module is clashing with each other.
And also using tracing and logging into my custom adapter module code.Getting the following error,
java.io.IOException: Unable to read entire header; 116 bytes read; expected 512 bytes#
Thanks
Ayan -
Sending a formatted Excel sheet as an attachment in a mail.
Hi ,
I have been using following code to to send formatted excel sheet as attachment in email.
in the below code I want to change the format of cell from Bold to Underline.
I have replaced Bold with Underline for below code but it is not working can anyone suggest on this.
Department
r_cell = l_document->create_simple_element( name = 'Cell' parent = r_row ).
r_cell->set_attribute_ns( name = 'StyleID' prefix = 'ss' value = 'Header' ).
r_data = l_document->create_simple_element( name = 'Data' value = 'MATNR' parent = r_cell ).
r_data->set_attribute_ns( name = 'Type' prefix = 'ss' value = 'String' ).
r_format->set_attribute_ns( name = 'Bold' prefix = 'ss' value = '1' ).
Creating a ixml Factory
l_ixml = cl_ixml=>create( ).
Creating the DOM Object Model
l_document = l_ixml->create_document( ).
Create Root Node 'Workbook'
l_element_root = l_document->create_simple_element( name = 'Workbook' parent = l_document ). l_element_root->set_attribute( name = 'xmlns' value = 'urn:schemas-microsoft-com:office:spreadsheet' ). ns_attribute = l_document->create_namespace_decl( name = 'ss' prefix = 'xmlns' uri = 'urn:schemas-microsoft-com:office:spreadsheet' ). l_element_root->set_attribute_node( ns_attribute ). ns_attribute = l_document->create_namespace_decl( name = 'x' prefix = 'xmlns' uri = 'urn:schemas-microsoft-com:office:excel' ). l_element_root->set_attribute_node( ns_attribute ).
Create node for document properties.
r_element_properties = l_document->create_simple_element( name = 'TEST_REPORT' parent = l_element_root ). l_value = sy-uname. l_document->create_simple_element( name = 'Author' value = l_value parent = r_element_properties ).
Styles
r_styles = l_document->create_simple_element( name = 'Styles' parent = l_element_root ).
Style for Header
r_style = l_document->create_simple_element( name = 'Style' parent = r_styles ). r_style->set_attribute_ns( name = 'ID' prefix = 'ss' value = 'Header' ). r_format = l_document->create_simple_element( name = 'Font' parent = r_style ).
Worksheet
r_worksheet = l_document->create_simple_element( name = 'Worksheet' parent = l_element_root ). r_worksheet->set_attribute_ns( name = 'Name' prefix = 'ss' value = 'PO Details' ).
Table
r_table = l_document->create_simple_element( name = 'Table' parent = r_worksheet ). r_table->set_attribute_ns( name = 'FullColumns' prefix = 'x' value = '1' ). r_table->set_attribute_ns( name = 'FullRows' prefix = 'x' value = '1' ).
Column Formatting
r_column = l_document->create_simple_element( name = 'Column' parent = r_table ). r_column->set_attribute_ns( name = 'Width' prefix = 'ss' value = '70' ). r_column = l_document->create_simple_element( name = 'Column' parent = r_table ). r_column->set_attribute_ns( name = 'Width' prefix = 'ss' value = '70' ). r_column = l_document->create_simple_element( name = 'Column' parent = r_table ). r_column->set_attribute_ns( name = 'Width' prefix = 'ss' value = '70' ). r_column = l_document->create_simple_element( name = 'Column' parent = r_table ). r_column->set_attribute_ns( name = 'Width' prefix = 'ss' value = '70' ). r_column = l_document->create_simple_element( name = 'Column' parent = r_table ). r_column->set_attribute_ns( name = 'Width' prefix = 'ss' value = '70' ).
Blank Row
r_row = l_document->create_simple_element( name = 'Row' parent = r_table ).
Column Headers Row
r_row = l_document->create_simple_element( name = 'Row' parent = r_table ). r_row->set_attribute_ns( name = 'AutoFitHeight' prefix = 'ss' value = '1' ).
Sr. No.
r_cell = l_document->create_simple_element( name = 'Cell' parent = r_row ). r_cell->set_attribute_ns( name = 'StyleID' prefix = 'ss' value = 'Header' ). r_data = l_document->create_simple_element( name = 'Data' value = 'EBELN' parent = r_cell ). r_data->set_attribute_ns( name = 'Type' prefix = 'ss' value = 'String' ).
User Name
r_cell = l_document->create_simple_element( name = 'Cell' parent = r_row ). r_cell->set_attribute_ns( name = 'StyleID' prefix = 'ss' value = 'Header' ). r_data = l_document->create_simple_element( name = 'Data' value = 'EBELP' parent = r_cell ). r_data->set_attribute_ns( name = 'Type' prefix = 'ss' value = 'String' ).
Full Name
r_cell = l_document->create_simple_element( name = 'Cell' parent = r_row ). r_cell->set_attribute_ns( name = 'StyleID' prefix = 'ss' value = 'Header' ). r_data = l_document->create_simple_element( name = 'Data' value = 'AEDAT' parent = r_cell ). r_data->set_attribute_ns( name = 'Type' prefix = 'ss' value = 'String' ).
Department
r_cell = l_document->create_simple_element( name = 'Cell' parent = r_row ). r_cell->set_attribute_ns( name = 'StyleID' prefix = 'ss' value = 'Header' ). r_data = l_document->create_simple_element( name = 'Data' value = 'MATNR' parent = r_cell ). r_data->set_attribute_ns( name = 'Type' prefix = 'ss' value = 'String' ). r_format->set_attribute_ns( name = 'Bold' prefix = 'ss' value = '1' ). r_format = l_document->create_simple_element( name = 'Interior' parent = r_style ). r_format->set_attribute_ns( name = 'Color' prefix = 'ss' value = '#C0C0C0' ). r_format->set_attribute_ns( name = 'Pattern' prefix = 'ss' value = 'Solid' ). r_format = l_document->create_simple_element( name = 'Alignment' parent = r_style ). r_format->set_attribute_ns( name = 'Vertical' prefix = 'ss' value = 'Center' ). r_format->set_attribute_ns( name = 'WrapText' prefix = 'ss' value = '1' ).
Data Table
LOOP AT it_ekpo INTO wa_ekpo. r_row = l_document->create_simple_element( name = 'Row' parent = r_table ).
Sr. No.
r_cell = l_document->create_simple_element( name = 'Cell' parent = r_row ).
r_cell->set_attribute_ns( name = 'StyleID' prefix = 'ss' value = 'Data' ).
l_value = sy-tabix.
CONDENSE l_value NO-GAPS.
r_data = l_document->create_simple_element( name = 'Data' value = l_value parent = r_cell ). " Data
r_data->set_attribute_ns( name = 'Type' prefix = 'ss' value = 'Number' ). " Cell format
EBELN
r_cell = l_document->create_simple_element( name = 'Cell' parent = r_row ). r_cell->set_attribute_ns( name = 'StyleID' prefix = 'ss' value = 'Data' ). l_value = wa_ekpo-ebeln. r_data = l_document->create_simple_element( name = 'Data' value = l_value parent = r_cell ). " Data r_data->set_attribute_ns( name = 'Type' prefix = 'ss' value = 'String' ). " Cell format
EBELP
r_cell = l_document->create_simple_element( name = 'Cell' parent = r_row ). r_cell->set_attribute_ns( name = 'StyleID' prefix = 'ss' value = 'Data' ). l_value = wa_ekpo-ebelp. r_data = l_document->create_simple_element( name = 'Data' value = l_value parent = r_cell ). " Data r_data->set_attribute_ns( name = 'Type' prefix = 'ss' value = 'String' ). " Cell format
AEDAT
r_cell = l_document->create_simple_element( name = 'Cell' parent = r_row ). r_cell->set_attribute_ns( name = 'StyleID' prefix = 'ss' value = 'Data' ). l_value = wa_ekpo-aedat. r_data = l_document->create_simple_element( name = 'Data' value = l_value parent = r_cell ). " Data r_data->set_attribute_ns( name = 'Type' prefix = 'ss' value = 'String' ). " Cell format
MATNR
r_cell = l_document->create_simple_element( name = 'Cell' parent = r_row ). r_cell->set_attribute_ns( name = 'StyleID' prefix = 'ss' value = 'Data' ). l_value = wa_ekpo-matnr. r_data = l_document->create_simple_element( name = 'Data' value = l_value parent = r_cell ). " Data r_data->set_attribute_ns( name = 'Type' prefix = 'ss' value = 'String' ). " Cell format ENDLOOP.
Creating a Stream Factory
l_streamfactory = l_ixml->create_stream_factory( ).
Connect Internal XML Table to Stream Factory
l_ostream = l_streamfactory->create_ostream_itable( table = l_xml_table ).
Rendering the Document
l_renderer = l_ixml->create_renderer( ostream = l_ostream document = l_document ). l_rc = l_renderer->render( ).
Saving the XML Document
l_xml_size = l_ostream->get_num_written_raw( ).
Before sending the mail,
LOOP AT l_xml_table INTO wa_xml.
CLEAR objbin.
objbin-line = wa_xml-data.
APPEND objbin to BINARY_CONTENT.
ENDLOOP.
Here, objbin is of type SOLIX and BINARY_CONTENT is of type SOLIX_TAB.
Now, call the method,
CALL METHOD DOCUMENT->ADD_ATTACHMENT
EXPORTING I_ATTACHMENT_TYPE = 'XLS'
I_ATTACHMENT_SUBJECT = 'My attachment'
I_ATT_CONTENT_HEX = BINARY_CONTENT .Try this..
r_format->set_attribute_ns( name = 'Underline' prefix = 'ss' value = 'Single' ). -
There used to be a preview window in mail where you could read the message in the mail box but now its gone. It just shows me who its from and the date. I now have to click on the message twice to get it to display. How do I get the preview box back?
There is a bug in Mail triggered by receiving a password-protected PDF as an attachment. According to reports, the bug is fixed in OS X 10.8.5.
-
We want the send mail button on the mail box, just like wen you replay an e-mail
i want the sending buttom for e-mail on the mail box thai i am writing..
It sounds like you're looking for the button that sends emails you've written, but that haven't successfully been sent yet. The Get Mail button does this.
-
I have tried deleteing all the mail, by selecting all to erase. I have done 5 at a time, 10 at a time by zooming out. Now I can not get into the mail box. I was sent a message saying I am not able to acess my mail. It is a me.com acct. I have 40gb of storage. Any suggestions of how to get rid of this mail? I don't want to give up my email address. Thanks. I did manage to stop all communty email and notifications. So no more email is coming. Again, thanks to anyone who can help me! Since I homeshare, I am sure all my other computers look the same! LOL.. I have only myself to blame, I guess. Linda
An Alias would be an email address that is delivered to a different account's inbox.
For instance if you have [email protected] and have [email protected] Then [email protected] would be an alias if mails from that address arrive at the icloud address.
If you want to add a completely different account, with a spearate inbox, like an account in hotmail and one in say yahoo mail. Then as has been pointed out, you need to go into the Settings Icon, Tap on Mail, Contacts, Calendars, and then on add account. The iPad has several services preconfigured, you can tap on one of those from the list to setup an email for that service. Such as Hotmail, Gmail etc...
Or you can tap on other to add a personal pop3 or imap type email like from your office, or your school. -
Regarding excel sheet as an attachment to mail
hi
am using the follwing code, it works finely upto sending excel as attachment. But the problem came in data of excel sheet.
the data in excel sheet is appearing like this one.
Butxt data is occupying all columns
BUKRS BUTXT
01 New York Insurance Company
The code am developed is....
parameters: p_email type somlreci1-receiver
default '[email protected]'.
types: begin of sol,
text(35),
end of sol.
data: begin of it001 occurs 0,
bukrs type t001-bukrs,
butxt type t001-butxt,
end of it001.
data: imessage type standard table of solisti1 with header line,
iattach type standard table of sol with header line,
ipacking_list like sopcklsti1 occurs 0 with header line,
ireceivers like somlreci1 occurs 0 with header line,
iattachment like solisti1 occurs 0 with header line.
start-of-selection.
select bukrs butxt into table it001 from t001.
Populate table with details to be entered into .xls file
perform build_xls_data .
Populate message body text
clear imessage.
refresh imessage.
imessage = 'Please find attached excel file'.
append imessage.
Send file by email as .xls spreadsheet
perform send_email_with_xls tables imessage
iattach
using p_email
'Example Excel Attachment'
'XLS'
'TestFileName'
'CompanyCodes'.
if sy-subrc = 0.
message i000(zsai).
endif.
Form BUILD_XLS_DATA
form build_xls_data .
constants: con_cret(2) type C value '0D', "OK for non Unicode
con_tab(2) type C value '09'. "OK for non Unicode
*If you have Unicode check active in program attributes then you will
*need to declare constants as follows
class cl_abap_char_utilities definition load.
constants:
con_tab type c value cl_abap_char_utilities=>HORIZONTAL_TAB,
con_cret type c value cl_abap_char_utilities=>CR_LF.
concatenate 'BUKRS' 'BUTXT'
into iattach separated by con_tab.
concatenate con_cret iattach into iattach.
append iattach.
loop at it001.
concatenate it001-bukrs it001-butxt
into iattach separated by con_tab.
concatenate con_cret iattach into iattach.
iattach = iattach(30).
append iattach.
endloop.
endform.
Form SEND_EMAIL_WITH_XLS
Send file by email as .xls spreadsheet
perform send_email_with_xls tables imessage
iattach
using p_email
'Example Excel Attachment'
'XLS'
'TestFileName'
'CompanyCodes'.
form send_email_with_xls tables pit_message
pit_attach
using p_email
p_mtitle
p_format
p_filename
p_attdescription.
data: xdocdata like sodocchgi1,
xcnt type i.
Fill the document data.
xdocdata-doc_size = 1.
Populate the subject/generic message attributes
xdocdata-obj_langu = sy-langu.
xdocdata-obj_name = 'SAPRPT'.
xdocdata-obj_descr = p_mtitle .
Fill the document data and get size of attachment
clear xdocdata.
read table iattach index xcnt.
xdocdata-doc_size =
( xcnt - 1 ) * 255 + strlen( iattach ).
xdocdata-obj_langu = sy-langu.
xdocdata-obj_name = 'SAPRPT'.
xdocdata-obj_descr = p_mtitle.
clear iattachment.
refresh iattachment.
iattachment[] = pit_attach[].
Describe the body of the message
clear ipacking_list.
refresh ipacking_list.
ipacking_list-transf_bin = space.
ipacking_list-head_start = 1.
ipacking_list-head_num = 0.
ipacking_list-body_start = 1.
describe table imessage lines ipacking_list-body_num.
ipacking_list-doc_type = 'RAW'.
append ipacking_list.
Create attachment notification
ipacking_list-transf_bin = 'X'.
ipacking_list-head_start = 1.
ipacking_list-head_num = 1.
ipacking_list-body_start = 1.
describe table iattachment lines ipacking_list-body_num.
ipacking_list-doc_type = p_format.
ipacking_list-obj_descr = p_attdescription.
ipacking_list-obj_name = p_filename.
ipacking_list-doc_size = ipacking_list-body_num * 255.
append ipacking_list.
Add the recipients email address
clear ireceivers. refresh ireceivers.
ireceivers-receiver = p_email.
ireceivers-rec_type = 'U'.
ireceivers-com_type = 'INT'.
ireceivers-notif_del = 'X'.
ireceivers-notif_ndel = 'X'.
append ireceivers.
call function 'SO_DOCUMENT_SEND_API1'
exporting
document_data = xdocdata
put_in_outbox = 'X'
commit_work = 'X'
tables
packing_list = ipacking_list
contents_bin = iattachment
contents_txt = imessage
receivers = ireceivers
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.
IF SY-SUBRC = 0.
SUBMIT rsconn01 WITH mode EQ 'INT' AND RETURN.
COMMIT WORK .
ENDIF.
endform.hi
am using the follwing code, it works finely upto sending excel as attachment. But the problem came in data of excel sheet.
the data in excel sheet is appearing like this one.
Butxt data is occupying all columns
BUKRS BUTXT
01 New York Insurance Company
The code am developed is....
parameters: p_email type somlreci1-receiver
default '[email protected]'.
types: begin of sol,
text(35),
end of sol.
data: begin of it001 occurs 0,
bukrs type t001-bukrs,
butxt type t001-butxt,
end of it001.
data: imessage type standard table of solisti1 with header line,
iattach type standard table of sol with header line,
ipacking_list like sopcklsti1 occurs 0 with header line,
ireceivers like somlreci1 occurs 0 with header line,
iattachment like solisti1 occurs 0 with header line.
start-of-selection.
select bukrs butxt into table it001 from t001.
Populate table with details to be entered into .xls file
perform build_xls_data .
Populate message body text
clear imessage.
refresh imessage.
imessage = 'Please find attached excel file'.
append imessage.
Send file by email as .xls spreadsheet
perform send_email_with_xls tables imessage
iattach
using p_email
'Example Excel Attachment'
'XLS'
'TestFileName'
'CompanyCodes'.
if sy-subrc = 0.
message i000(zsai).
endif.
Form BUILD_XLS_DATA
form build_xls_data .
constants: con_cret(2) type C value '0D', "OK for non Unicode
con_tab(2) type C value '09'. "OK for non Unicode
*If you have Unicode check active in program attributes then you will
*need to declare constants as follows
class cl_abap_char_utilities definition load.
constants:
con_tab type c value cl_abap_char_utilities=>HORIZONTAL_TAB,
con_cret type c value cl_abap_char_utilities=>CR_LF.
concatenate 'BUKRS' 'BUTXT'
into iattach separated by con_tab.
concatenate con_cret iattach into iattach.
append iattach.
loop at it001.
concatenate it001-bukrs it001-butxt
into iattach separated by con_tab.
concatenate con_cret iattach into iattach.
iattach = iattach(30).
append iattach.
endloop.
endform.
Form SEND_EMAIL_WITH_XLS
Send file by email as .xls spreadsheet
perform send_email_with_xls tables imessage
iattach
using p_email
'Example Excel Attachment'
'XLS'
'TestFileName'
'CompanyCodes'.
form send_email_with_xls tables pit_message
pit_attach
using p_email
p_mtitle
p_format
p_filename
p_attdescription.
data: xdocdata like sodocchgi1,
xcnt type i.
Fill the document data.
xdocdata-doc_size = 1.
Populate the subject/generic message attributes
xdocdata-obj_langu = sy-langu.
xdocdata-obj_name = 'SAPRPT'.
xdocdata-obj_descr = p_mtitle .
Fill the document data and get size of attachment
clear xdocdata.
read table iattach index xcnt.
xdocdata-doc_size =
( xcnt - 1 ) * 255 + strlen( iattach ).
xdocdata-obj_langu = sy-langu.
xdocdata-obj_name = 'SAPRPT'.
xdocdata-obj_descr = p_mtitle.
clear iattachment.
refresh iattachment.
iattachment[] = pit_attach[].
Describe the body of the message
clear ipacking_list.
refresh ipacking_list.
ipacking_list-transf_bin = space.
ipacking_list-head_start = 1.
ipacking_list-head_num = 0.
ipacking_list-body_start = 1.
describe table imessage lines ipacking_list-body_num.
ipacking_list-doc_type = 'RAW'.
append ipacking_list.
Create attachment notification
ipacking_list-transf_bin = 'X'.
ipacking_list-head_start = 1.
ipacking_list-head_num = 1.
ipacking_list-body_start = 1.
describe table iattachment lines ipacking_list-body_num.
ipacking_list-doc_type = p_format.
ipacking_list-obj_descr = p_attdescription.
ipacking_list-obj_name = p_filename.
ipacking_list-doc_size = ipacking_list-body_num * 255.
append ipacking_list.
Add the recipients email address
clear ireceivers. refresh ireceivers.
ireceivers-receiver = p_email.
ireceivers-rec_type = 'U'.
ireceivers-com_type = 'INT'.
ireceivers-notif_del = 'X'.
ireceivers-notif_ndel = 'X'.
append ireceivers.
call function 'SO_DOCUMENT_SEND_API1'
exporting
document_data = xdocdata
put_in_outbox = 'X'
commit_work = 'X'
tables
packing_list = ipacking_list
contents_bin = iattachment
contents_txt = imessage
receivers = ireceivers
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.
IF SY-SUBRC = 0.
SUBMIT rsconn01 WITH mode EQ 'INT' AND RETURN.
COMMIT WORK .
ENDIF.
endform. -
Send An Internal Table Via Excel File As An Attachment of E-mail
Hi,
I've sent my internal table via Excel file as an attachment of email but all records of internal table are in a row of sended excel file.
How can i send an internal table via excel file , records of internal table for each rows of excel file,as an attachment of email correctly?
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 " t_packing_list-doc_type = 'XLS'.
contents_bin = pit_attach " this is a normal internal table.
contents_txt = pit_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.Hi,
CLASS CL_ABAP_CHAR_UTILITIES DEFINITION LOAD.
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 T_FINAL INTO WA_T_FINAL.
CONCATENATE WA_T_FINAL-PERNR
WA_T_FINAL-NAME
WA_T_FINAL-LEVEL
WA_T_FINAL-POS
WA_T_FINAL-JOB
WA_T_FINAL-SECTION
WA_T_FINAL-DEPT
WA_T_FINAL-GROUP
WA_T_FINAL-EX_HEAD
WA_T_FINAL-SUPID
WA_T_FINAL-SUPNM
WA_T_FINAL-FHRNM
WA_T_FINAL-VACID
WA_T_FINAL-VAC_SECTION
WA_T_FINAL-VAC_DEPT
WA_T_FINAL-VAC_GROUP
WA_T_FINAL-VAC_EX_HEAD
WA_T_FINAL-VAC_FHRNM
INTO T_FINAL3 SEPARATED BY CON_TAB.
CONCATENATE CON_CRET T_FINAL3 INTO T_FINAL3.
APPEND T_FINAL3.
ENDLOOP.
*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 = 'REPORT'.
W_DOC_DATA-OBJ_DESCR = LD_MTITLE . "mail description
W_DOC_DATA-SENSITIVTY = 'F'.
*Fill the document data and get size of attachment
CLEAR W_DOC_DATA.
READ TABLE T_FINAL1 INDEX W_CNT.
W_DOC_DATA-DOC_SIZE =
( W_CNT - 1 ) * 255 + STRLEN( T_FINAL1 ).
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[] = PT_FINAL1[].
*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 1st 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 = 'Application 1'.
T_PACKING_LIST-OBJ_NAME = 'Application 1'.
T_PACKING_LIST-DOC_SIZE = T_PACKING_LIST-BODY_NUM * 255.
APPEND T_PACKING_LIST.
CLEAR 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 = 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.
Edited by: Rahul Ghosh on Apr 6, 2009 6:42 AM -
How to save data in New Excel Sheet on each time run the VI?
Hello everyone
I am doing my dissertation. In that i have to store the data of load cell in the excel sheet. I have done that.
Here i have attach the vi , template in which want to save data named My , and output when complete the rn of vi named My Report.
Now the problem is once i have run the vi , my report is generated but second time when i run the vi the new my report sheet is not generated. and the second problem is i am getting out put as 511, 0, 2.49.
I want the when ever i run the vi every time the new excel sheet should be generated and saved with date, time and my report tag. ex. My Report 20/11/13 12:00
And i want the output 511,2.49,...dont want this 0.
please hepl me out its urgent
Attachments:
COM TO EXCEL WITH EXCEL TOOLKIT.vi 44 KB
MY.xlsx 12 KB
My_Report 1.xlsx 12 KBYou just need to change the settings. Whenever it will write to excel it will display the save as option.
Then user will confirm the same
In the excel dispose report.vi passsave change and close report boolean input as TRUE and see
Kudos are always welcome if you got solution to some extent.
I need my difficulties because they are necessary to enjoy my success.
--Ranjeet -
Problem in Attachment of the Mail
Hi, I want to send the data in Internal Table as a text attachment to the SAP User Inbox. Problem I am facing is that, the records should go Line by Line i.e. each record should start from a new line but problem I am having is that, the next record starts in the same line where previous record has ended.
E.g. records should appear like this in file :
1. AAA XXX YYY ZZZ
2. XXX YYY ZZZ AAA
rather it is appearing like :
1. AAA XXX YYY ZZZ2. XXX YYY ZZZ AAA
I am giving the Code here to generate attachment and Mail I have used. Please help.
Data Declaration
data : begin of itab occurs 0,
ws_line(600) type c,
end of itab.
DATA : file_name TYPE string.
data : path like PCFILE-PATH.
data : extension(5) type c.
data : name(100) type c.
DATA : receiver TYPE somlreci1-receiver VALUE 'AHUJR0'.
DATA : BEGIN OF itab_str,
text(290) TYPE c,
END OF itab_str.
DATA: docdata LIKE sodocchgi1,
objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
objhead LIKE solisti1 OCCURS 0 WITH HEADER LINE,
objtxt LIKE solisti1 OCCURS 0 WITH HEADER LINE,
objbin LIKE itab_str OCCURS 0 WITH HEADER LINE,
objhex LIKE solix OCCURS 0 WITH HEADER LINE,
reclist LIKE somlreci1 OCCURS 0 WITH HEADER LINE.
DATA: tab_lines TYPE i,
doc_size TYPE i,
att_type LIKE soodk-objtp.
DATA: listobject LIKE abaplist OCCURS 1 WITH HEADER LINE.
Function Called to Prepare & send mail
PERFORM ml_addrecp USING receiver 'B'. "receiver contains SAP User Id
PERFORM doconv TABLES itab objbin. "itab is the table containing Data
PERFORM ml_prepare USING 'X' 'txt' grn_file. "grn_file is the name of attachment file
PERFORM ml_dosend.
Form ml_addrecp
FORM ml_addrecp USING preceiver prec_type.
CLEAR reclist.
reclist-receiver = preceiver.
reclist-rec_type = prec_type.
APPEND reclist.
ENDFORM. "ml_addrecp
Form doconv
FORM doconv TABLES mypdf STRUCTURE itab_str
outbin STRUCTURE itab_str.
Loop And Put Data
LOOP AT mypdf.
outbin = mypdf.
APPEND outbin.
CLEAR: outbin.
ENDLOOP.
ENDFORM. "doconv
Form ml_prepare
FORM ml_prepare USING bypassmemory whatatt_type whatname.
IF bypassmemory = ''.
Fetch List From Memory
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = listobject
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
MESSAGE ID '61' TYPE 'E' NUMBER '731'
WITH 'LIST_FROM_MEMORY'.
ENDIF.
ENDIF.
DESCRIBE TABLE objtxt LINES tab_lines.
READ TABLE objtxt INDEX tab_lines.
docdata-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).
CLEAR objpack-transf_bin.
objpack-head_start = 1.
objpack-head_num = 0.
objpack-body_start = 1.
objpack-body_num = tab_lines.
objpack-doc_type = 'TXT'.
APPEND objpack.
Packing Info Attachment
att_type = whatatt_type..
DESCRIBE TABLE objbin LINES tab_lines.
READ TABLE objbin INDEX tab_lines.
objpack-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objbin ).
objpack-transf_bin = 'X'.
objpack-head_start = 1.
objpack-head_num = 0.
objpack-body_start = 1.
objpack-body_num = tab_lines.
objpack-doc_type = att_type.
objpack-obj_name = 'ATTACHMENT'.
objpack-obj_descr = whatname.
APPEND objpack.
ENDFORM. "ml_prepare
Form ml_dosend.
FORM ml_dosend.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = docdata
put_in_outbox = 'X'
commit_work = 'X' "used from rel. 6.10
TABLES
packing_list = objpack
object_header = objhead
contents_bin = objbin
contents_txt = objtxt
receivers = reclist
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.
IF sy-subrc <> 0.
MESSAGE ID 'SO' TYPE 'S' NUMBER '023'
WITH docdata-obj_name.
ENDIF.
ENDFORM. "ml_dosendHi Ravi,
I also had the same problem, the solution to this is.... Instead of giving the TXT type to the attachment give as 'RAW' it will work... it is working for me... note the place for the comment CHANGE I HAVE DONE in the code given by you...
objpack-doc_type = 'RAW'. '' for the attachment instead of TXT...
Eg...
Packing Info Attachment
*att_type = whatatt_type.. '" CHANGE I HAVE DONE
DESCRIBE TABLE objbin LINES tab_lines.
READ TABLE objbin INDEX tab_lines.
objpack-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objbin ).
objpack-transf_bin = 'X'.
objpack-head_start = 1.
objpack-head_num = 0.
objpack-body_start = 1.
objpack-body_num = tab_lines.
*objpack-doc_type = att_type. " CHANGE I HAVE DONE
objpack-doc_type = 'RAW'. " CHANGE I HAVE DONE
objpack-obj_name = 'ATTACHMENT'.
objpack-obj_descr = whatname.
APPEND objpack.
ENDFORM. "ml_prepare -
Reading excel sheet from out side of the server though sql developer.
Hi ALL,
Is it possible to read the excel sheet from the out side of the oracle server.
If it possible please send me the sample code.Duplicate thread.
Reading excel sheet from local system though sql developer
Also a FAQ
SQL and PL/SQL FAQ -
I do a sort a converted PDF to an excel spreadsheet? The merged fields aren't the same...
Sorry, I don't understand anything. What means "merged data" and "merged fields"?
Can you perhaps provide a screenshot of the original PDF, and the resulting Excel sheet? See https://forums.adobe.com/thread/1070933 -
Create pdf attachment to the mail
Hi folks,
My requirement is to attach pdf document to the mail step in workflow programatically and document is on presentation server.
i have tried with SOFM object type, but it is asking for document number , but i could not provide it because it is not in SAP system.
how to acheive this.
Thanks,
janakiram.try this copy and paste is and make changes as required
Enjoy.............
To create pdf from internal table.
Two steps
1. get spool no.
2. create pdf.
1. get spool no.
SELECT *
FROM zwftrack
INTO TABLE it_zwftrack
WHERE wf_id = p_wf_id
AND action = 'FYA'.
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING destination = 'LP01' " 'LT50'
copies = 1
list_name = g_rq2name
list_text = 'COMM-PDF NEW-PAGE PRINT ON'
immediately = ' '
release = ' '
new_list_id = 'X'
expiration = g_days
line_size = g_ln_size " 255 ZTG12
line_count = g_ln_count " 65 ZTG12
layout = g_layout " 'X_PAPER'ZTG12
SAP_COVER_PAGE = 'X'
RECEIVER = 'SAP*'
DEPARTMENT = 'System'
SAP_OBJECT = 'RS'
AR_OBJECT = 'TEST'
ARCHIVE_ID = 'XX'
ARCHIVE_INFO = 'III'
ARCHIVE_TEXT = 'Description'
no_dialog = 'X'
IMPORTING out_parameters = g_params
out_archive_parameters = g_arparams
valid = g_valid.
"end of get
NEW-PAGE PRINT ON
NEW-SECTION
NO-TITLE
PARAMETERS g_params
ARCHIVE PARAMETERS g_arparams
NO DIALOG.
***add at top of comments list
WRITE:/ 'Contract Analysis Worksheet', 150 'Current Data ( ', l_date, ' ', l_time, ' )'.
WRITE:/150 'Run # :', wa_zzbedsheet-bdshnum.
WRITE:/ 'Project ID :',g_object_no.
WRITE:/ 'Project :',g_psr_desc.
WRITE:/ 'Profit Center :',g_prctr.
WRITE:/ 'Project Manager :',g_final_abb_contact.
WRITE:/ 'RA key :',g_abgsl.
WRITE:/ 'Customer :',l_cust.
WRITE:/ 'Project Start :',l_proj_start.
SKIP 3.
SORT it_zwftrack BY approver_level.
LOOP AT it_zwftrack INTO wa_zwftrack.
AT FIRST.
WRITE:/ 'Approvers Comments:'.
SKIP 1.
WRITE:/1 'Role', 35 'Approved By', 50 'Signature', 75 'Comments'.
ULINE.
ENDAT.
IF wa_zwftrack IS INITIAL.
SKIP.
ELSE.
PERFORM f_get_name USING wa_zwftrack-approved_by
CHANGING g_final_abb_contact.
WRITE :/ wa_zwftrack-role UNDER 'Role',
g_final_abb_contact UNDER 'Approved By',
wa_zwftrack-signature UNDER 'Signature',
wa_zwftrack-comments UNDER 'Comments'.
ENDIF.
CLEAR: g_final_abb_contact.
insert page break
IF sy-tabix = w_lines .
NEW-PAGE .
w_lines = 2 * w_lines.
ENDIF.
ENDLOOP.
NEW-PAGE PRINT OFF .
CLEAR w_tsp01.
SELECT SINGLE *
FROM tsp01
INTO w_tsp01
WHERE rqowner = sy-uname
AND rq2name = g_rq2name. "'COMM-PDF' .
g_spool_comm = w_tsp01-rqident.
2. create pdf
CLEAR g_lines .
REFRESH it_tab1 .
****get comments page from spool
CALL FUNCTION 'RSPO_RETURN_ABAP_SPOOLJOB'
EXPORTING
rqident = g_spool_comm "spool1
TABLES
buffer = it_tab1
EXCEPTIONS
no_such_job = 1
job_contains_no_data = 2
selection_empty = 3
no_permission = 4
can_not_access = 5
read_error = 6
OTHERS = 8.
IF sy-subrc = 0.
ENDIF.
to record line no for page break .
DESCRIBE TABLE it_tab1 LINES g_lines.
MOVE g_lines TO wa_eof-line .
APPEND wa_eof TO it_eof .
CLEAR g_lines .
APPEND LINES OF it_tab1 TO it_tab.
REFRESH it_tab1 .
SELECT SINGLE spld INTO w_spld FROM usr01 WHERE bname = sy-uname.
SHIFT g_wf_id LEFT DELETING LEADING '0'.
CONCATENATE g_wf_id '-ONEPDF' INTO g_list_name.
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING destination = w_spld " 'LT50'
copies = 1
list_name = g_list_name
list_text = 'PM-PDF NEW-PAGE PRINT ON'
immediately = ' '
release = ' '
new_list_id = 'X'
expiration = g_days
line_size = g_ln_size " 255 ZTG12
line_count = g_ln_count " 65 ZTG12
layout = g_layout " 'X_PAPER'ZTG12
SAP_COVER_PAGE = 'X'
RECEIVER = 'SAP*'
DEPARTMENT = 'System'
SAP_OBJECT = 'RS'
AR_OBJECT = 'TEST'
ARCHIVE_ID = 'XX'
ARCHIVE_INFO = 'III'
ARCHIVE_TEXT = 'Description'
no_dialog = 'X'
IMPORTING out_parameters = g_params
out_archive_parameters = g_arparams
valid = g_valid.
NEW-PAGE PRINT ON
NEW-SECTION
NO-TITLE
PARAMETERS g_params
ARCHIVE PARAMETERS g_arparams
NO DIALOG.
w_idx = 1 . " for reading EOF line no .
w_tabix = 0 .
READ TABLE it_eof INTO wa_eof INDEX w_idx .
MOVE wa_eof-line TO g_lines .
w_lines = w_tabix + g_lines .
DATA: w_linestr LIKE sy-tabix . "#EC NEEDED
LOOP AT it_tab INTO wa_tab.
IF wa_tab-line CP 'Current Budget' .
w_linestr = sy-tabix .
ENDIF .
IF wa_tab IS INITIAL OR wa_tab-line CA '?' . " ZTG15
SKIP . " ZTG15
ELSE . " ZTXX
WRITE / wa_tab .
ENDIF . " ZTG15
insert page break
IF sy-tabix = w_lines .
NEW-PAGE .
w_idx = w_idx + 1 .
w_tabix = sy-tabix + w_tabix .
READ TABLE it_eof INTO wa_eof INDEX w_idx .
MOVE wa_eof-line TO g_lines .
w_lines = w_tabix + g_lines .
CLEAR: w_tabix.
ENDIF .
ENDLOOP .
NEW-PAGE PRINT OFF .
CLEAR w_tsp01.
SELECT * INTO TABLE t_tsp01 FROM tsp01
WHERE rqowner = sy-uname
AND rq2name = g_list_name .
IF sy-subrc = 0 .
SORT t_tsp01 BY rqcretime DESCENDING . "RBE24 rqident DESCENDING .
ENDIF .
READ TABLE t_tsp01 INTO W_TSP01 INDEX 1 .
CLEAR w_tsp01.
SELECT SINGLE *
FROM tsp01
INTO w_tsp01
WHERE rqowner = sy-uname
AND rq2name = g_list_name. "'COMM-PDF' .
WHILE g_numbytes = 0 .
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = w_tsp01-rqident "spoolno
no_dialog = ' '
DST_DEVICE =
PDF_DESTINATION =
IMPORTING
pdf_bytecount = g_numbytes
pdf_spoolid = g_pdfspoolid
LIST_PAGECOUNT =
btc_jobname = g_jobname
btc_jobcount = g_jobcount
TABLES
pdf = it_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.
ENDWHILE.
**DATA : DATA_TAB TYPE TABLE.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
bin_filesize = g_numbytes
filename = g_lv_file
filetype = 'BIN'
IMPORTING
filelength = g_numbytes
TABLES
data_tab = it_pdf
FIELDNAMES =
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
report ZTEST12345678.
tables:
tsp01.
*STRUCTURES
parameters:
p_repid like sy-repid, " Report to execute
p_linsz like sy-linsz default 255, " Line size
p_paart like sy-paart default 'X_65_132'. " Paper Format
data:
mstr_print_parms like pri_params,
mc_valid(1) type c,
mi_bytecount type i,
mi_length type i,
mi_rqident like tsp01-rqident.
*INTERNAL TABLES
data:
mtab_pdf like tline occurs 0 with header line,
mc_filename TYPE string.
*----Data for Mail
DATA: OBJPACK LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE.
DATA: OBJHEAD LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE.
DATA: OBJBIN LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
DATA: OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
DATA: RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE.
DATA: DOC_CHNG LIKE SODOCCHGI1.
DATA: TAB_LINES LIKE SY-TABIX.
DATA: V_MAILID(241) TYPE C .
DATA: BEGIN OF DATA_TAB OCCURS 20,
LINE(255),
END OF DATA_TAB.
start-of-selection.
concatenate 'c:\abap\'
p_repid
'.pdf'
into mc_filename.
*Setup the Print Parmaters
call function 'GET_PRINT_PARAMETERS'
exporting
authority = space
copies = '1'
cover_page = space
data_set = space
department = space
destination = space
expiration = '1'
immediately = space
*in_archive_parameters = space
*in_parameters = space
layout = space
mode = space
new_list_id = 'X'
no_dialog = 'X'
user = sy-uname
importing
out_parameters = mstr_print_parms
valid = mc_valid
exceptions
archive_info_not_found = 1
invalid_print_params = 2
invalid_archive_params = 3
others = 4.
*Make sure that a printer destination has been set up
*If this is not done the PDF function module ABENDS
if mstr_print_parms-pdest = space.
mstr_print_parms-pdest = 'LP01'.
endif.
*Explicitly set line width, and output format so that
*the PDF conversion comes out OK
mstr_print_parms-linsz = p_linsz.
mstr_print_parms-paart = p_paart.
submit (p_repid) to sap-spool without spool dynpro
spool parameters mstr_print_parms
via selection-screen
and return.
CALL FUNCTION 'ENQUE_SLEEP'
EXPORTING
seconds = 2.
*Find out what the spool number is that was just created
P_REPID = SY-REPID.
perform get_spool_number using p_repid sy-uname
changing mi_rqident.
*Convert Spool to PDF
call function 'CONVERT_ABAPSPOOLJOB_2_PDF'
exporting
src_spoolid = mi_rqident
no_dialog = space
dst_device = mstr_print_parms-pdest
importing
pdf_bytecount = mi_bytecount
tables
pdf = mtab_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
others = 12.
perform create_mail_data.
PERFORM SEND_MAIL.
*FORM get_spool_number
*Get the most recent spool created by user/report *
*--> F_REPID *
*--> F_UNAME *
*--> F_RQIDENT *
form get_spool_number using f_repid
f_uname changing f_rqident.
data: lc_rq2name like tsp01-rq2name.
concatenate f_repid+0(8)
f_uname+0(3)
into lc_rq2name separated by '_'.
concatenate f_repid+0(9)
f_uname+0(3)
into lc_rq2name.
select * from tsp01 where rq2name = lc_rq2name
order by rqcretime descending.
f_rqident = tsp01-rqident.
exit.
endselect.
if sy-subrc ne 0.
clear f_rqident.
endif.
endform." get_spool_number
**& Form create_mail_data
form create_mail_data.
*Creation of the document to be sent
DOC_CHNG-OBJ_NAME = 'TEST MAIL ATTACHMENTS'.
DOC_CHNG-OBJ_DESCR = 'Test for PDF'.
OBJTXT = 'Contents of mail'.
APPEND OBJTXT.
OBJTXT = 'PDF'.
APPEND OBJTXT.
OBJTXT = 'PDF'.
APPEND OBJTXT.
DESCRIBE TABLE OBJTXT LINES TAB_LINES.
READ TABLE OBJTXT INDEX TAB_LINES.
DOC_CHNG-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( OBJTXT ).
*Creation of the entry for the compressed document
CLEAR OBJPACK-TRANSF_BIN.
OBJPACK-HEAD_START = 1.
OBJPACK-HEAD_NUM = 0.
OBJPACK-BODY_START = 1.
OBJPACK-BODY_NUM = TAB_LINES.
OBJPACK-DOC_TYPE = 'RAW'.
APPEND OBJPACK.
*-DOWNLOADING AND AGAIN UPLOADINGIN BIN FORMAT TO TRANSFER TO OBJBIN
*MC_FILENAME = 'c:\test.doc' .
*--pdf--
*MC_FILENAME = 'c:\test.pdf'.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = MI_BYTECOUNT
filename = MC_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 = MTAB_PDF[]
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*CALL FUNCTION 'GUI_DOWNLOAD'
*EXPORTING
*BIN_FILESIZE = MI_BYTECOUNT
*FILENAME = MC_FILENAME
*FILETYPE = 'BIN'
*TABLES
*DATA_TAB = MTAB_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.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = MC_FILENAME
FILETYPE = 'BIN'
HAS_FIELD_SEPARATOR = ' '
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
VIRUS_SCAN_PROFILE =
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
HEADER =
tables
data_tab = OBJBIN
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*CALL FUNCTION 'GUI_UPLOAD'
*EXPORTING
*FILENAME = MC_FILENAME
*FILETYPE = 'BIN'
*TABLES
*DATA_TAB = OBJBIN.
*--uncommnet this for pdf--
DESCRIBE TABLE OBJBIN LINES TAB_LINES.
OBJHEAD = 'TEST.pdf'. APPEND OBJHEAD.
*Creation of the entry for the compressed attachment
OBJPACK-TRANSF_BIN = 'X'.
OBJPACK-HEAD_START = 1.
OBJPACK-HEAD_NUM = 1.
OBJPACK-BODY_START = 1.
OBJPACK-BODY_NUM = TAB_LINES.
OBJPACK-DOC_TYPE = 'PDF'.
OBJPACK-OBJ_NAME = 'Testing PDF Attachment'.
OBJPACK-OBJ_DESCR = 'Customes Ageing report PDF Output Attachment'.
OBJPACK-DOC_SIZE = TAB_LINES * 255.
APPEND OBJPACK.
CLEAR V_MAILID.
V_MAILID = <mail id>.
RECLIST-RECEIVER = V_MAILID.
RECLIST-REC_TYPE = 'U'. "B for SAP Inbox
APPEND RECLIST.
endform. " create_mail_data
**& Form SEND_MAIL
form SEND_MAIL.
Sending the document
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA = DOC_CHNG
PUT_IN_OUTBOX = 'X'
commit_work = 'X'
TABLES
PACKING_LIST = OBJPACK
OBJECT_HEADER = OBJHEAD
CONTENTS_BIN = OBJBIN
CONTENTS_TXT = OBJTXT
RECEIVERS = RECLIST
EXCEPTIONS
TOO_MANY_RECEIVERS = 1
DOCUMENT_NOT_SENT = 2
OPERATION_NO_AUTHORIZATION = 4
OTHERS = 99.
*EXCEPTION HANDLING
CASE SY-SUBRC.
WHEN 0.
WRITE: / 'Mail sent with attachment'.
WHEN 1.
WRITE: / 'No authorization for sending to the specified number',
'of recipients'.
WHEN 2.
WRITE: / 'Document could not be sent to any recipient'.
WHEN 4.
WRITE: / 'No send authorization'.
WHEN OTHERS.
WRITE: / 'Error occurred while sending'.
ENDCASE.
endform. " SEND_MAIL -
Problems with txt attachment in the mail
Hi,
I noticed a big problem for the mail in mac os x. Every time I received my txt format data file in attachment with email, it automatically displayed at the end of my email in the Mail instead of remaining as a txt attachment file ready for download. How can I set it to stay as an attachment instead of being forced to show up as plain text in the end of my received email? Thanks.Hi,
I noticed a big problem for the mail in mac os x. Every time I received my txt format data file in attachment with email, it automatically displayed at the end of my email in the Mail instead of remaining as a txt attachment file ready for download. How can I set it to stay as an attachment instead of being forced to show up as plain text in the end of my received email? Thanks. -
Picking up the attachment from the Mail...
Hi to All,
I am trying one scenario in which i want to pick the Mail from mail server which contains an attachment in XML format and i want to Access this Attachment (i dont have to do anything with the main Body of mail) and want to put the Data of the attachment in RFC.
Can body please help me.
Its very urgent.
Thanks
Regards
Vikashi vikas,
u can use the following links to develop ur scenario.
/people/sravya.talanki2/blog/2005/08/18/triggering-e-mails-to-shared-folders-of-sap-is-u - Triggering Email from folder
/people/prasad.ulagappan2/blog/2005/06/07/mail-adapter-scenarios-150-sap-exchange-infrastructure - Mail Adaptor options , mail attatchment
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/6d967fbc-0a01-0010-4fb4-91c6d38c5816
/people/prasad.ulagappan2/blog/2005/06/07/mail-adapter-scenarios-150-sap-exchange-infrastructure
/people/michal.krawczyk2/blog/2005/11/23/xi-html-e-mails-from-the-receiver-mail-adapter
https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1685 [original link is broken] [original link is broken] [original link is broken] [original link is broken]
regards
sreeni
Maybe you are looking for
-
To the forum members In the Crystal Formula Editor, under Print State, there is a function called Previous. This compares the contents of the current field to the previous one. Is there a similar function in the SQL Expression Editor. I'm trying t
-
More than one field in generic data source
Hi All, We wanted extract Allocation data for the sales order from R/3 to BW. I am not able to find proper data source for it... there are two datasources..we wanted afs specific datasource 2LIS_11_V_ITM : Sales-Shipping Allocation Item Data 2LIS_1
-
Header Currency in Shopping Cart
Hi Gurus, In a shopping cart the header currency always comes from the user attributes no matter what the item currency is . Our requirement is to have the header currency to be same as the item currency when all the items have the same currency. How
-
No images showing in LR2.6
I am running LR2.6 on a Dell XPS435T 64b W7. I downloaded LR2.6, and it seemed to work ok for a while. Now when I open my catalog there are no images, only gray squares. The correct metatata shows on the side bar, as do the rating stars on each gr
-
New computer to sync iphone to
My old computer crashed and I have a new one but I don't want to have to lose all my music or ringtones. How do I sync it without losing the information ?