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
Ayan
Shabarish,
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
Similar Messages
-
Adapter module to read excel file -java code required for PI 7.1
Hi PI experts,
I am working on PI 7.1 SP 08.
I am trying to develope an adapter module to read excel file
http://wiki.sdn.sap.com/wiki/display/ABAP/AdapterModuleToReadExcelFilewithMultipleRowsandMultiple+Columns
but here in this wiki , given java code is for pi 7.0 and it is using jar file from PI 7.0
I tried with using corresponding PI 7.1 files
com.sap.aii.af.lib.mod.jar:
sap.comtcloggingjavaimpl.jar:
com.sap.aii.af.svc_api.jar:
com.sap.aii.af.cpa.svc_api.jar:
com.sap.aii.af.ms.ifc_api.jar:
jave program is not throwing any error in NWDS but After deploying file on server.
i am getting this errot in communication channel
2009-12-15 15:47:08 Information AO: Now calling the Convert Method to convert Excel to XML.
2009-12-15 15:47:08 Error MP: exception caught with cause javax.ejb.TransactionRolledbackLocalException: nested exception is: java.lang.RuntimeException: java.lang.UnsupportedClassVersionError: Bad version number in .class file; nested exception is: javax.ejb.EJBException: nested exception is: java.lang.RuntimeException: java.lang.UnsupportedClassVersionError: Bad version number in .class file; nested exception is: javax.ejb.EJBTransactionRolledbackException: nested exception is: java.lang.RuntimeException: java.lang.UnsupportedClassVersionError: Bad version number in .class file; nested exception is: javax.ejb.EJBException: nested exception is: java.lang.RuntimeException: java.lang.UnsupportedClassVersionError: Bad version number in .class file
since i am not a JAVA expert so i am unable to resolve this error
if some one has already deployed this module for PI 7.1, then please provide me java code for PI 7.1
Thanks
sandeep sharmahi,
please try this:
obj = inputModuleData.getPrincipalData();
msg = (Message) obj;
amk = new MessageKey(msg.getMessageId(),msg.getMessageDirection());
XMLPayload xpld = msg.getDocument();
Workbook wb = Workbook.getWorkbook((InputStream) xpld.getInputStream());
xmldata ="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n"+ "<ns0:"msgType" ""xmlns:ns0=\""nameSpace+"\">";
Cell[] cells ;
Cell[] cellNames ;
cellNames = wb.getSheet(0).getRow(0);
for(int j=1;j<wb.getSheet(0).getRows();j++)
xmldata = xmldata+"<Record>";
cells = wb.getSheet(0).getRow(j);
for(int i=0;i<wb.getSheet(0).getColumns();i++)
xmldata = xmldata"<"cellNames<i>.getContents()">"cells<i>.getContents()"</"cellNames<i>.getContents()+">";
xmldata = xmldata+"</Record>";
xmldata = xmldata"</ns0:"msgType+">";
wb.close();
byte byt[] = xmldata.getBytes();
xpld.setContent(byt);
inputModuleData.setPrincipalData(msg);
Thanks,
Mayank -
I attached multiples .pdf files to an email. Tried to attach the next file before the previous 1 finished attaching. Got error message "this "**" file cannot be attached until the files already attached are finished uploading". Was never able to attach that 1 file to the email that I received the error message for; was able to attach subsequent files to that same email & send it. Now, I often get the same error message, even if I only attach 1 file & esp. when attaching .ai or .jpeg files. What can I do to fix this problem?
It looks like nobody has an answer for this despite of the 80 something views!
And here i thought Adobe admin would be monitoring the forum, but surprisingly, they don't even have the answer for this!!! -
Sending excel file as an attachment in email program thru Oracle8i
I cant send my excel file as an attachment in my email program thru Oracle 8i.
My excel file i located in my local pc C:\test.xls
Everything is in my local machine, DB and progams.
I have read the example of DEMO_MAIL program i am hardly understand it.
My sample program:
if (p_file_name is not null) then
begin_attachment( p_mime_type=>'application/excel', p_fname=>p_file_name,
p_transfer_enc=>'base64'
dbms_lob.createtemporary(l_blob, true);
dbms_lob.open(l_bfile);
dbms_lob.fileopen(l_bfile);
dbms_lob.open(l_blob, dbms_lob.lob_readwrite);
dbms_lob.loadfromfile(l_blob, l_bfile, dbms_lob.getlength(l_bfile));
dbms_lob.fileclose(l_bfile);
dbms_lob.close(l_bfile);
l_file_len := dbms_lob.getlength(l_blob);
l_modulo := mod(l_file_len,MAX_BASE64_LINE_WIDTH);
l_pieces := trunc(l_file_len/MAX_BASE64_LINE_WIDTH);
while (l_counter < l_pieces)
loop
dbms_lob.read(l_blob, l_modulo, l_filepos, l_buffer);
l_message := utl_raw.concat(l_message, l_buffer);
write_mb_text(l_message||g_crlf);
l_filepos := l_counter * MAX_BASE64_LINE_WIDTH + 1;
l_counter := l_counter + 1;
end loop;
if l_modulo <> 0 then
dbms_lob.read(l_blob, l_modulo, l_filepos, l_buffer);
l_message := utl_raw.concat(l_message, l_buffer);
write_mb_text(l_message||g_crlf);
end if;
dbms_lob.close(l_blob);
end_attachment(true);
Please helpI did not receive any error messages when executing the program. It works fine, I received the email nicely but without the attachment.
Here is the emails I received:
LOGICAL SPACE USED HAS REACHED ITS TRESHOLD. PLEASE DO NECESSAY TO MAKE MORE ROOM FOR THE SPACE TO EXTEND.
Tablespace Name Used Size(MB) Free Size(MB)
SYSTEM 259.953 4.047
USERS 144.508 55.492
INDX 31.258 26.742
-------7D81B75CCC90D2974F7A1CBD
Content-Type: multipart/mixed; boundary="-----7D81B75CCC90D2974F7A1CBD"
Content-Disposition: attachment; filename="capacity_13-JAN-05-111226.xls"
Content-Transfer-Encoding: base64
-haris -
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 -
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 -
How to send text file as an attachment to exteral mail
hi ,
Can any one tell me how to send an internal table as a textfile attachment to the external mail.
regards
kishorehi,
i am assuming txt fie attachment means you want notepad attachment
recently i struggled on this and i achieved success by doing as below
remember to keep packlist as RAW type like below:
t_packing_list-doc_type = 'RAW'.
do like this
CALL FUNCTION 'SO_SOLITAB_TO_SOLIXTAB'
EXPORTING
ip_solitab = t_attachment[]
IMPORTING
EP_SOLIXTAB = xtext[].
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = w_doc_data
PUT_IN_OUTBOX = 'X'
COMMIT_WORK = 'X'
tables
packing_list = t_packing_list
OBJECT_HEADER =
CONTENTS_BIN = objbin
CONTENTS_TXT = it_message
CONTENTS_HEX = xtext
OBJECT_PARA =
OBJECT_PARB =
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 -
SOFFICEINTEGRATION 898 error message when trying to send excel file to
Hi,
I am trying to send excel file from sap dp planning book using macro with document function to outlook mail.
when i am running the macro online its sending the file to my mail
but when i am scheduling a background job and executing its giving me SOFFICEINTEGRATION error 898
can you please help?
do i need to do any setting any where
ThanksHello,
Programs that run in the background cannot address controls on the frontend. This is why you are not able to run a Program using SAP Office Integration which is a Frontend Control and can be used only with the SAP Gui. Since background process cannot make use of UI screens or actions hence it's not possible use SAP Office Integration in background processing. The reason for this is explained in note 674060. Therefore sending emails using a batch macro is not supported.
Best regards
Rico Frenzel -
Hi PI Experts,
I have a requirement File(.txt) - PI(7.4) - mail (.xls attachment and signature in the body). Can anyone pls help me with the best approach to send excel file as mail attachment and signature in the body.
Thanks,
SriHi
You can try this approach
1. use mail package and java mapping to populate the mail package.
inside the java mapping do the following
a. read the text file and convert it to excel and then set it as additional attachment.
b. map the signature and body with the field 'content' of mail package.
2. on the receiver mail adapter check both mail package and keep attachment options.
Hopefully this will work.
Reference links
excel write : Excel and Java - Read and Write Excel with Java - Tutorial
set attachment: How to save MainDocument as additonal attachment in sender channel? -
Please tell me How to send excel file content to MAILBOX
Hello ,
Can anybody tell me how to send Excel file data to MailboxHi,
Check this sample code.
INITIALIZATION .
CLASS cl_abap_char_utilities DEFINITION LOAD.
gf_etb = cl_abap_char_utilities=>horizontal_tab. "For horrizontal tab
gf_cr = cl_abap_char_utilities=>cr_lf. "For enter
gf_lf = cl_abap_char_utilities=>newline. "For new line
Declaration
DATA: lwa_hd_change TYPE sood1,
lt_objcont TYPE STANDARD TABLE OF soli,
lwa_objcont TYPE soli,
lt_receivers TYPE STANDARD TABLE OF soos1,
lwa_receivers TYPE soos1 ,
lt_att_cont TYPE STANDARD TABLE OF soli,
lwa_att_cont TYPE soli,
lt_packing TYPE STANDARD TABLE OF soxpl,
lwa_packing TYPE soxpl,
lf_sent TYPE sonv-flag,
lf_size TYPE i.
CONSTANTS: lc_obj(11) TYPE c VALUE 'BOMSouthco',
lc_desc(20) TYPE c VALUE 'BOM Download',
lc_lang(1) TYPE c VALUE 'E',
lc_raw(3) TYPE c VALUE 'RAW',
lc_net(1) TYPE c VALUE 'U',
lc_mail(4) TYPE c VALUE 'MAIL',
lc_xls(3) TYPE c VALUE 'XLS',
lc_ext(3) TYPE c VALUE 'EXT'.
Passing values to the strutures used in SO_OBJECT_SEND function module
lwa_hd_change-objla = lc_lang.
lwa_hd_change-objnam = lc_obj.
lwa_hd_change-objdes = lc_desc.
lwa_hd_change-objlen = 255.
lwa_objcont-line = text-t29.
APPEND lwa_objcont TO lt_objcont.
CLEAR lwa_objcont.
lwa_receivers-recextnam = text-t31.
lwa_receivers-recesc = lc_net.
lwa_receivers-sndart = lc_mail.
lwa_receivers-sndex = 'X'.
lwa_receivers-sndpri = 1.
lwa_receivers-mailstatus = 'E'.
APPEND lwa_receivers TO lt_receivers.
CLEAR lwa_receivers.
lwa_receivers-recextnam = text-t30.
lwa_receivers-recesc = lc_net.
lwa_receivers-sndart = lc_mail.
lwa_receivers-sndex = 'X'.
lwa_receivers-sndpri = 1.
lwa_receivers-mailstatus = 'E'.
APPEND lwa_receivers TO lt_receivers.
CLEAR lwa_receivers.
Passing values for the attachment file
LOOP AT gt_output INTO gwa_output.
CONCATENATE gf_lf gwa_output-matnr gf_etb gwa_output-idnrk gf_etb
gwa_output-type gf_etb gwa_output-menge gf_etb
gwa_output-meins gf_etb gwa_output-comp gf_etb
INTO lwa_att_cont-line.
APPEND lwa_att_cont TO lt_att_cont.
CLEAR lwa_att_cont.
ENDLOOP.
CHECK lt_att_cont IS NOT INITIAL.
DESCRIBE TABLE lt_att_cont LINES lf_size.
lwa_packing-transf_bin = ' '.
lwa_packing-head_start = 1.
lwa_packing-head_num = 0.
lwa_packing-body_start = 1.
lwa_packing-body_num = lf_size.
lwa_packing-file_ext = lc_xls.
lwa_packing-objlen = lf_size * 255.
lwa_packing-objtp = lc_ext.
lwa_packing-objdes = lc_desc.
lwa_packing-objnam = lc_obj.
APPEND lwa_packing TO lt_packing.
CLEAR lwa_packing.
CHECK gf_error IS NOT INITIAL. "Check if unix file is written
FM to send email to the intended recipients
CALL FUNCTION 'SO_OBJECT_SEND'
EXPORTING
object_hd_change = lwa_hd_change
object_type = lc_raw
IMPORTING
sent_to_all = lf_sent
TABLES
objcont = lt_objcont
receivers = lt_receivers
packing_list = lt_packing
att_cont = lt_att_cont
EXCEPTIONS
active_user_not_exist = 1
communication_failure = 2
component_not_available = 3
folder_not_exist = 4
folder_no_authorization = 5
forwarder_not_exist = 6
note_not_exist = 7
object_not_exist = 8
object_not_sent = 9
object_no_authorization = 10
object_type_not_exist = 11
operation_no_authorization = 12
owner_not_exist = 13
parameter_error = 14
substitute_not_active = 15
substitute_not_defined = 16
system_failure = 17
too_much_receivers = 18
user_not_exist = 19
originator_not_exist = 20
x_error = 21
OTHERS = 22.
IF sy-subrc = 0.
MESSAGE s004 WITH text-t34.
ENDIF.
COMMIT WORK.
Reward if helpful.
Regards,
Ramya -
Customised module for reading Excel files.
Hi Gurus,
I have to develop a customsed java module for reading Excel files from PI. I downloaded NWDS 7.31 from following location NWDS Download links - Java Development - SCN Wiki. I have installed it on my local laptop. For developing the module I need following Jar files.
com.sap.aii.af.ms.svc_api
com.sap.aii.proxy.svc_api.jar
com.sap.aii.sec.svc_api.jar
com.sap.aii.utilxi.server.jar
com.sap.aii.utilxi.core.jar
com.sap.xi.mapping.tool.lib_api.jar
sap.com~tc~bl~txmanagerimpl~plb~impl.jar
sap.com~tc~je~appcontect_api~API.jar
com.sap.aii.af.cpa.svc.api
com.sap.aii.af.lib.mod
com.sap.aii.af.ms.ifc_api
com.sap.aii.af.svc_api
com.sap.xpi.ib.mapping.lib
1. Where can i get these jar files. I checked these files in my downloaded NWDS 7.31 package, but cold not find them.
Thanks in advanceHi.
Check this thread.
Where to get the libraries for XI development - Process Integration - SCN Wiki
Regards
Lucho -
Sending an excel file as an attachment to email
Hi,
I am using FM 'SO_DOCUMENT_SEND_API1' to send an excel file to an email ID.But the mail is going to the SAP inbox and it is posting not to the external mail ID like ([email protected]).
Please suggest me on this.
Regards'
Ved.Hi
The mail sending process depends on how your company's mail server has been setup. Check the mail server setup with ur basis/network team. Moreover, go to transaction SCOT and manually trigger the mail sending process.
In this transaction check the SMTP settings if it is set to *ALL.
Moreover, try to manually trigger the send process in SCOT. There is a button called 'Start Send process'. After this check if the mails are still in your SAP Outbox. You can even trigger the send process from within your ABAP program by submitting the program RSCONN* (Try to search with this initials)
Please award points if this was helpful. -
Error opening excel files in browser
Okai I am currently facing an error when i try to open excel files in browser . it gives the prompt "The workbook can not be opened".
Upon checking the logs I found the following entries in the log file . recently we tried to move our site over https but later the idea was scrapped and we retracted to the old iis settings furthermore sharepoint forefront protection is also installed on our
farm .
When i check the event viewer I see the following error every time i try to open excel workbook on sharepoint browser
1719104822: #960013: Antivirus scanner timed out.
ULS LOGS :
m MossHostFileLoader.GetCloseUri: parent folder/list url = /CorporatePlanning/Tasweeq QAS/9 - Functional Procedures and Standards/Corporate Planning/Standards/Master documents for file = Tasweeq QAS/9 - Functional
Procedures and Standards/Corporate Planning/Standards/Master documents/PLS-06A Sample Economic Template A (Condensates) 14 Aug 2013.xlsx
3f0aca0b-b7df-4ef2-8983-2ab3b35c9932
0x1868
Excel Services Application Excel Calculation Services
5pam Medium
BaseWorkbookManager.GetBaseWorkbookAndMarkUsedAsync: There are 1 Base Workbooks in the Base Workbook Manager
3f0aca0b-b7df-4ef2-8983-2ab3b35c9932
0x1868 Excel Services Application
Excel Calculation Services
27e7 Medium
BaseWorkbookManager.GetBaseWorkbookAndMarkUsedAsync: Spawning BaseWorkbook job to load the file.
3f0aca0b-b7df-4ef2-8983-2ab3b35c9932
0x1868 Excel Services Application
Excel Calculation Services
gvr1 Medium
BaseWorkbook.CacheStream: Fetching "http://tq-intra1:77/CorporatePlanning/Tasweeq%20QAS/9%20-%20Functional%20Procedures%20and%20Standards/Corporate%20Planning/Standards/Master%20documents/PLS-06A%20Sample%20Economic%20Template%20A%20(Condensates)%2014%20Aug%202013.xlsx"
to local disk cache as "C:\Windows\TEMP\Excel Server\FileCache\f85d573e-d592-4ce5-8c5e-3095a297861c\Workbooks\f1c8e29f-15fc-42a9-89bb-37c14a5995b0.xlsx.xlserver"
3f0aca0b-b7df-4ef2-8983-2ab3b35c9932
0x1868 Excel Services Application
Excel Calculation Services
d1qs Medium
MossHostFileLoader.FetchStreamInternal: Fetching version 512 from File.Versions collection. The latest version available is: 512
3f0aca0b-b7df-4ef2-8983-2ab3b35c9932
0x1868 SharePoint Foundation
General
1
Critical 1719104822: #960013: Antivirus scanner timed out.
3f0aca0b-b7df-4ef2-8983-2ab3b35c9932
0x1868 Excel Services Application
Excel Calculation Services
91zq Medium
BaseWorkbookManager.GetBaseWorkbookAndMarkUsedAsync: Got an error when trying to fetch file from file loader. Error was Id=GenericFileOpenError; Microsoft.Office.Excel.Server.CalculationServer.FileOpenException: The workbook cannot be opened.
---> Microsoft.Office.Excel.Server.Host.HostFileException ---> Microsoft.SharePoint.SPException: Error Found: at Microsoft.SharePoint.SPFile.GetFileStreamCore(OpenBinaryFlags openOptions, String etagNotMatch, String& etagNew,
String& contentTagNew) at Microsoft.SharePoint.SPFile.GetFileStream(OpenBinaryFlags openOptions, String etagNotMatch, String& etagNew, String& contentTagNew) at Microsoft.SharePoint.SPFile.OpenBinaryStream()
at Microsoft.Office.Excel.Server.MossHost.MossHostFileLoader.FetchStreamInternal() --- End of inner ex...
3f0aca0b-b7df-4ef2-8983-2ab3b35c9932
0x1868 Excel Services Application
Excel Calculation Services
91zq Medium
...ception stack trace --- at Microsoft.Office.Excel.Server.MossHost.MossHostFileLoader.FetchStreamInternal() at Microsoft.Office.Excel.Server.MossHost.MossHostFileLoader.FetchStream(IIdentity currentIdentity)
at Microsoft.Office.Excel.Server.CalculationServer.SharePointFileLoader.FetchStream() --- End of inner exception stack trace --- at Microsoft.Office.Excel.Server.CalculationServer.SharePointFileLoader.FetchStream()
at Microsoft.Office.Excel.Server.CalculationServer.BaseWorkbookManager.CacheStream(CachedFile cachedFile, FileLoader loader) at Microsoft.Office.Excel.Server.CalculationServer.BaseWorkbook.Microsoft.Office.Excel.Server.CalculationServer.ICachedFileProvider.SaveFile(CachedFile
cachedFile) at Microsoft.Office.Excel.Server.CalculationServer.Cached...
3f0aca0b-b7df-4ef2-8983-2ab3b35c9932
0x1868 Excel Services Application
Excel Calculation Services
91zq Medium
...File.SaveFile(ICachedFileProvider fileProvider) at Microsoft.Office.Excel.Server.CalculationServer.LocalDiskCache.ReserveCachedFileAndMarkUsed(FileId fileId, ICachedFileProvider fileProvider, Boolean replaceExistingFile)
at Microsoft.Office.Excel.Server.CalculationServer.BaseWorkbook.ReserveCachedFileAndMarkUsed(FileLoader fileLoader) at Microsoft.Office.Excel.Server.CalculationServer.BaseWorkbookManager.GetBaseWorkbookAndMarkUsedAsync(AsyncHandler`1 callback,
Object userState, Request request, Uri uri, Boolean newWorkbook, Boolean useCollection, Boolean loadedOnDemand)
3f0aca0b-b7df-4ef2-8983-2ab3b35c9932
10/07/2014 11:30:06.92 w3wp.exe (0x0B70)
0x1868
SharePoint Foundation Monitoring
b4ly Medium
Leaving Monitored Scope (ExecuteWcfServerOperation). Execution Time=84.4791
3f0aca0b-b7df-4ef2-8983-2ab3b35c9932
10/07/2014 11:30:06.92 w3wp.exe (0x0B70)
0x0D10
Excel Services Application Excel Calculation Services
bbow Medium
BaseWorkbook.LoadWorkbookJobAsync: Starting. FileId.Uri=http://tq-intra1:77/CorporatePlanning/Tasweeq%20QAS/9%20-%20Functional%20Procedures%20and%20Standards/Corporate%20Planning/Standards/Master%20documents/PLS-06A%20Sample%20Economic%20Template%20A%20(Condensates)%2014%20Aug%202013.xlsx
3f0aca0b-b7df-4ef2-8983-2ab3b35c9932
10/07/2014 11:30:06.92 w3wp.exe (0x0B70)
0x0D10
SharePoint Server
Logging Correlation Data
xmnv Medium
Name=Job: LoadWorkbook 3f0aca0b-b7df-4ef2-8983-2ab3b35c9932
10/07/2014 11:30:06.92 w3wp.exe (0x0B70)
0x0D10
SharePoint Server
Logging Correlation Data
xmnv Medium
Document=http://tq-intra1:77/CorporatePlanning/Tasweeq%20QAS/9%20-%20Functional%20Procedures%20and%20Standards/Corporate%20Planning/Standards/Master%20documents/PLS-06A%20Sample%20Economic%20Template%20A%20(Condensates)%2014%20Aug%202013.xlsx
3f0aca0b-b7df-4ef2-8983-2ab3b35c9932
10/07/2014 11:30:06.92 w3wp.exe (0x0B70)
0x0D10
Excel Services Application Excel Calculation Services
91zp Medium
BaseWorkbook.LoadWorkbookJobAsync: Detected error that occurred in the BeginXXX portion of this call. It will be wrapped and retheown. Error was Id=GenericFileOpenError; Microsoft.Office.Excel.Server.CalculationServer.FileOpenException: The workbook
cannot be opened. ---> Microsoft.Office.Excel.Server.Host.HostFileException ---> Microsoft.SharePoint.SPException: Error Found: at Microsoft.SharePoint.SPFile.GetFileStreamCore(OpenBinaryFlags openOptions, String etagNotMatch, String&
etagNew, String& contentTagNew) at Microsoft.SharePoint.SPFile.GetFileStream(OpenBinaryFlags openOptions, String etagNotMatch, String& etagNew, String& contentTagNew) at Microsoft.SharePoint.SPFile.OpenBinaryStream()
at Microsoft.Office.Excel.Server.MossHost.MossHostFileLoader.FetchStreamInternal(...
3f0aca0b-b7df-4ef2-8983-2ab3b35c9932
10/07/2014 11:30:06.92* w3wp.exe (0x0B70)
0x0D10
Excel Services Application Excel Calculation Services
91zp Medium
...) --- End of inner exception stack trace --- at Microsoft.Office.Excel.Server.MossHost.MossHostFileLoader.FetchStreamInternal() at Microsoft.Office.Excel.Server.MossHost.MossHostFileLoader.FetchStream(IIdentity
currentIdentity) at Microsoft.Office.Excel.Server.CalculationServer.SharePointFileLoader.FetchStream() --- End of inner exception stack trace --- at Microsoft.Office.Excel.Server.CalculationServer.SharePointFileLoader.FetchStream()
at Microsoft.Office.Excel.Server.CalculationServer.BaseWorkbookManager.CacheStream(CachedFile cachedFile, FileLoader loader) at Microsoft.Office.Excel.Server.CalculationServer.BaseWorkbook.Microsoft.Office.Excel.Server.CalculationServer.ICachedFileProvider.SaveFile(CachedFile
cachedFile) at Microsoft.Office.Excel.Server...
3f0aca0b-b7df-4ef2-8983-2ab3b35c9932
10/07/2014 11:30:06.92* w3wp.exe (0x0B70)
0x0D10
Excel Services Application Excel Calculation Services
91zp Medium
....CalculationServer.CachedFile.SaveFile(ICachedFileProvider fileProvider) at Microsoft.Office.Excel.Server.CalculationServer.LocalDiskCache.ReserveCachedFileAndMarkUsed(FileId fileId, ICachedFileProvider fileProvider, Boolean replaceExistingFile)
at Microsoft.Office.Excel.Server.CalculationServer.BaseWorkbook.ReserveCachedFileAndMarkUsed(FileLoader fileLoader) at Microsoft.Office.Excel.Server.CalculationServer.BaseWorkbookManager.GetBaseWorkbookAndMarkUsedAsync(AsyncHandler`1
callback, Object userState, Request request, Uri uri, Boolean newWorkbook, Boolean useCollection, Boolean loadedOnDemand).
3f0aca0b-b7df-4ef2-8983-2ab3b35c9932
10/07/2014 11:30:06.92 w3wp.exe (0x0B70)
0x0D10
Excel Services Application Excel Calculation Services
8trf Medium
BaseWorkbookManager.UnsafeRemoveWorkbook: There are 0 Base Workbooks in the Base Workbook ManagerHi arsalan,
This issue seems to be about the forefront protection. Please try to increase Antivirus time out as SharePoint Central Administration->Security->Manage antivirus settings, then compare the result.
If this issue still exists, I suggest re-install forefront.
In addition, please check if the links are useful for you:
http://blog.henryong.com/2012/06/12/auto-restarting-forefront-for-sharepoint-when-it-hangs-and-times-out-with-powershell/
http://breakfixsolution.blogspot.jp/2014/03/sharepoint-sites-were-not-accessible.html
https://support2.microsoft.com/kb/2953311?wa=wsignin1.0
Best Regards,
Wendy
Wendy Li
TechNet Community Support -
Please Help. compare two excel files. Can't get the find command to work
Hello, I'm new to applescript. I'm trying to write a script to compare column B of one excel file to column B of the another excel file.
I will have to had a repeat loop to proceed down the column but I'm stuck on the find command.
Below is some of the code I have so far. The applescript error message is "Microsoft Excel got an error: The object you are trying to access does not exist. It highlights the find column."
set patientFile to choose file with prompt "Please select the patient Excel file:"
set patientName to name of (info for patientFile)
tell application "Microsoft Excel"
open patientFile
set thepatientFile to workbook patientName
end tell
display dialog "Is your patient SNP data in column B of the " & " " & patientName & " " & "excel file?" buttons {"No", "Yes"} default button 2
if the button returned of the result is "No" then
display dialog "Please put your data in column B" buttons {"Cancel"} default button 1
if the button returned of the result is "Cancel" then
end if
else
display dialog "Is column E empty? The results of this program will be stored in column E of the" & " " & patientName & " " & "excel file." buttons {"No", "Yes"} default button 2
if the button returned of the result is "No" then
display dialog "Please put your data in empty column E" buttons {"Cancel"} default button 1
if the button returned of the result is "Cancel" then
end if
else
set relativeFile to choose file with prompt "Please select the relative Excel file:"
set relativeName to name of (info for relativeFile)
tell application "Microsoft Excel"
open relativeFile
set therelativeFile to workbook relativeName
end tell
end if
end if
display dialog "Is your relative SNP data in column B of the" & " " & relativeName & " " & "excel file?" buttons {"No", "Yes"} default button 2
if the button returned of the result is "No" then
display dialog "Please put your data in column B" buttons {"Cancel"} default button 1
if the button returned of the result is "Cancel" then
end if
else
display dialog "Does column C contain the result data you would like copied from" & " " & relativeName & " " & "excel file?" buttons {"No", "Yes"} default button 2
if the button returned of the result is "No" then
display dialog "Please put the data you would like copied in column C." buttons {"Cancel"} default button 1
if the button returned of the result is "Cancel" then
end if
else
tell application "Microsoft Excel"
activate object workbook patientName
copy value of cell "A1" to cellPatientFile
find (range "B:B" of workbook relativeName) what cellPatientFile
if cellPatientFile is true then
set bold of font object of cellPatientFile to true
end if
end tell
end if
end if
Does any one have any hints towards solving this problem? Thank you for any help.Hi,
taffners wrote:
Thank you everyone for your help. I attached my code. It works now but kinda slow. Does anyone have any hints on making it faster.
Important : when you use the find command, it's preferable to use the properties ( look in and look at).
Example : find searchRange what searchTerm look in values look at whole
Otherwise, it will search according to the criteria of your last find.
Example, if you uncheck 'Find entire cells only', and after that you run the script,
find column 2 what 10.0 --> match 110.0 or 1110.0 or 310.0, .... , because it look at part.
set screen updating to false : Yes it improves the speed.
Here are my tests (no duplicate values in the Excel column ) on old computer (Powermac G5) .
set screen updating to false without any activate object command
2000 rows --> 3.7 minutes, your script : 11.5 minutes
4000 rows --> 7.5 minutes, your script : 23 minutes
8000 rows --> 15 minutes, your script : 46 minutes
But, it's faster to search through a list without using the Excel find command, no need to set the screen updating, You can continue working on the workbook or another workbook, this will not disturb the script.
Tests on my script :
2000 rows --> 4 seconds
4000 rows --> 21 seconds
8000 rows --> 1.3 minutes
17000 rows --> 6 minutes
Here is the script :
main()
display dialog "Done"
on main()
script o
property patientSNP_list : {}
property relativeSNP_list : {}
property resultsList : {}
property copyAnswerList : {}
on findLookAtWhole(value) -- case sensitive
set {low, high} to {1, count my relativeSNP_list}
considering case
repeat while low ≠ high
set mid_ to (low + high) div 2
if value is in items low thru mid_ of my relativeSNP_list then
set high to mid_
else
set low to mid_ + 1
end if
end repeat
end considering
if (item low of my relativeSNP_list is value) then
set end of my resultsList to item low of my copyAnswerList
else
set end of my resultsList to {"no"}
end if
end findLookAtWhole
end script
--opens File1. Names it patientName
set patientFile to choose file with prompt "Please select the patient Excel file:"
set patientName to name of (info for patientFile)
tell application "Microsoft Excel"
open patientFile
set thepatientFile to workbook patientName
set patientSheet to sheet (name of active sheet) of thepatientFile
end tell
--This Dialog assigns where the data is stored for file1
display dialog "What Column is your patient SNP data of the " & " " & patientName & " " & "excel file?" default answer "" buttons {"submit"} default button 1
set PatientSNPCol to (text returned of the result)
--This Dialog assigns what row your data starts at for file1
display dialog "What row does your patient SNP data start in the " & " " & patientName & " " & "excel file?" default answer "" buttons {"submit"} default button 1
set patientSNPRow to (text returned of the result)
set patientStartCell to PatientSNPCol & patientSNPRow
--This Dialog assigns the last row of data for file1
display dialog "What row is the last row of you patient SNP data start of the " & " " & patientName & " " & "excel file?" default answer "" buttons {"submit"} default button 1
set patientLastRow to (text returned of the result)
set patientLastCell to PatientSNPCol & patientLastRow
--This Dialog assigns the location of the data copied from file2
display dialog "What column would you like the results of this program stored in of the" & " " & patientName & " " & "excel file." default answer "" buttons {"submit"} default button 1
set resultsLocation to (text returned of the result)
--opens File2. Names it relativeName
set relativeFile to choose file with prompt "Please select the relative Excel file:"
set relativeName to name of (info for relativeFile)
tell application "Microsoft Excel"
open relativeFile
set therelativeFile to workbook relativeName
set relativeSheet to sheet (name of active sheet) of therelativeFile
end tell
--This dialog assigns the column of data in file2
display dialog "What Column is your relative SNP data of the " & " " & relativeName & " " & "excel file?" default answer "" buttons {"submit"} default button 1
set relativeSNPCol to (text returned of the result)
--This dialog assigns the column of data begining copied to excel file1.
display dialog "What Column contains the data you would like copied to the " & " " & patientName & " " & "excel file in column" & " " & resultsLocation & " " & "?" default answer "" buttons {"submit"} default button 1
set copyAnswer to (text returned of the result)
tell application "Microsoft Excel" -- get values
set o's patientSNP_list to value of range (PatientSNPCol & patientSNPRow & ":" & PatientSNPCol & patientLastRow) of patientSheet
set lastrow to first row index of (last cell of used range of relativeSheet)
set o's relativeSNP_list to value of range (relativeSNPCol & "1:" & relativeSNPCol & lastrow) of relativeSheet
set o's copyAnswerList to value of range (copyAnswer & "1:" & copyAnswer & lastrow) of relativeSheet
end tell
set tc to (count o's relativeSNP_list)
repeat with i from 1 to tc --convert list of lists to one list
set item i of o's relativeSNP_list to item 1 of item i of o's relativeSNP_list
end repeat
set tc to (count o's patientSNP_list)
repeat with i from 1 to tc -- AppleScript find method, not the Excel Find
o's findLookAtWhole(item 1 of (item i of o's patientSNP_list))
end repeat
tell application "Microsoft Excel" -- set values
set value of range (resultsLocation & patientSNPRow & ":" & resultsLocation & patientLastRow) of patientSheet to o's resultsList
end tell
end main
If you have lots of rows and you want it to go faster.
I have another script that uses the power of (/usr/bin/awk and his associative arrays) in a do shell script
17000 rows --> awk : 2 seconds, applescript : 6 seconds, total : 8 seconds
34000 rows --> awk : 3 seconds, applescript : 11 seconds, total : 14 seconds -
I recently bought two iMac quad core i5 processor speed 2.5 Ghz. Every time I use Air Drop and I send a file from one iMac to the other, a black curtain drops and I am asked to restart the computer!!! What can I do?
That's a kernel panic and indicates some sort of problem either with the computer's hardware or software. Visit The XLab FAQs and read the FAQ on diagnosing kernel panics. It would help to post the panic log: Mac OS X- How to log a kernel panic.
Meanwhile, try booting the computers into Safe Mode then restarting normally. If this is simply a disk repair or cache file problem then this may fix it.
You can also try creating a new admin account on each computer then booting into the new account. This would help determine if the problem is related to a bad file in the user accounts.
Maybe you are looking for
-
9.0.2 - 9.0.3 repository upgrade
I recently upgraded from OWB 9.0.2 to 9.0.3.0.1. After the upgrade, I tried to use the Repository Assistant to upgrade my old repository but got the following error message: "This repository cannot be upgraded to add more languages to support object
-
Display Files with API in web-browser
I'm trying to display display files (not reports). The download currently completes, but the file is blank. I am getting the file as an IInfoObject by: IInfoObject obj = TraversalLogic.getInstance().getInfoObject(iStore, Integer.parseInt(objIdStr), "
-
Lumia 720 vibration too too low
I have a LUMIA 720 and its simply awesome. But I have an issue. When in office, I usually put my phone on virbation only. Now if I put my phone on the desk, the vibration is so so so so damn low I can hardly feel it, only when the phone is in hand I
-
All I need is a manual for MS-6378. Can anyone please help. I tried to replace motherboard, but did not work properly. Now I need to jumper settings and where to plug power switch.
-
Update Mode and CATT Mode in BDC
Hi Experts, when we start the recording then we pass the following steps.. 1.Recording Name 2. Trasaction Code 3. Update Mode-------*Local *Synchronous *Asynchronous 4.CATT Mode------*No Cat