Detect "end of file" while send n numbers files over a socket?
Hi!
I�m trying to find a way to detect "end of file" while send n numbers files over a socket.
What i'm looking for is how to detect on the client side when the file i�m sending is downloaded.
Here is the example i�m working on.
Client side.
import java.io.*;
import java.net.*;
public class fileTransfer {
private InputStream fromServer;
public fileTransfer(String fileName) throws FileNotFoundException, IOException {
Socket socket = new Socket("localhost", 2006);
fromServer = socket.getInputStream();
for(int i=0; i<10; i++)
receive(new File(i+fileName));
private void receive(File uploadedFile) throws FileNotFoundException, IOException {
uploadedFile.createNewFile();
FileOutputStream toFile = new FileOutputStream(uploadedFile);
byte[] buffer = new byte[4096];
int bytesRead = 0;
while ((bytesRead = fromServer.read(buffer)) != -1) {
toFile.write(buffer, 0, bytesRead);
public static void main(String[] args) {
try {
new fileTransfer("testa.jpg");
} catch (Exception ex) {ex.printStackTrace();}
}Server side.
import java.io.*;
import java.net.*;
public class fileTransferSend {
Socket serv = null;
OutputStream toClient;
public fileTransferSend(String fileName) throws FileNotFoundException, IOException {
StartServer();
for(int i =0; i<10; i++)
send(new File(fileName));
public void StartServer() throws IOException {
ServerSocket ssocket = new ServerSocket(2006);
System.out.println("Waiting for incomming");
serv = ssocket.accept();
System.out.println("incomming");
toClient = serv.getOutputStream();
private void send(File f) throws FileNotFoundException, IOException {
if(f.exists() && f.canRead()) {
FileInputStream fromFile = new FileInputStream(f);
try {
byte[] buffer = new byte[4096]; // 4K
int bytesRead = 0;
System.out.println("sending: "+f.getName());
while ((bytesRead = fromFile.read(buffer)) != -1) {
toClient.flush();
toClient.write(buffer, 0, bytesRead);
finally {
//toClient.close();
fromFile.close();
} else {
System.out.println("no files");
public static void main(String[] args) {
try {
new fileTransferSend("test.jpg");
}catch(Exception e) {e.printStackTrace();}
I know that the client never reads -1 becuase i doesn�t close the stream.
Is there anyway to tell the client that the file is downloaded?
A common (and easy) TCP/IP protocol is to send length, followed by data.
Because TCP/IP is a stream-oriented protocol, a receiver can never absolutely determine where the first packet ends and the second packet begins. So it is common to send the length of the packet, followed by the packet itself.
In your case, you could send length of file, followed by file data. It should be fairly easy to obtain file length and send that as a 32-bit (or 64-bit value). Here is an idea (not code) for the receiver:
receive (4) // where 4 = number bytes to receive
unsigned length = convert 4 bytes to unsigned integer
while (length != 0)
n = receive ( length ) // where n = number bytes actually received, and length = number bytes desired
Or, you can use the concept of an "Escape" character in the stream. Arbitrarily choose an ESCAPE character of 0x1B (although it could be any 8-bit value). When the receiver detects an ESCAPE char, the next character can be either control or data. So for end of file you might send 0x1B 0x00. If the byte to be sent is 0x1B, then send 0x1B 0x1B. The receiver would look something like this:
b = read one byte from stream
if (b == 0x1B)
b = read one byte from stream
if (b == 0x00) then end of file
else place b in buffer
else
place b in buffer
Later.
Similar Messages
-
TS3899 I am unable to attach any files while sending mail
Please tell me how to attach any word or pic or audio file while sending a mail using MAIL in my iphone 4.
Step 1
Remove "MacKeeper" as follows. First, back up all data.
"MacKeeper" has only one useful feature: it deletes itself.
Note: These instructions apply to the version of the product that I downloaded and tested in early 2012. I can't be sure that they apply to other versions.
IMPORTANT: "MacKeeper" has what the developer calls an “encryption” feature. In my tests, I didn't try to verify what this feature really does. If you used it to “encrypt” any of your files, “decrypt” them before you uninstall, or (preferably) restore the files from backups made before they were “encrypted.” As the developer is not trustworthy, you should assume that the "decrypted" files are corrupt unless proven otherwise.
In the Finder, select
Go ▹ Applications
from the menu bar, or press the key combination shift-command-A. The "MacKeeper" application is in the folder that opens. Quit it if it's running, then drag it to the Trash. You'll be prompted for your login password. Click the Uninstall MacKeeper button in the dialog that appears. All the functional components of the software will be deleted. Reboot.
☞ Quit MacKeeper before dragging it to the Trash.
☞ Don't empty the Trash. Let MacKeeper delete itself.
☞ Don't try to drag the MacKeeper Dock icon to the Trash.
Step 2
From the Safari menu bar, select
Safari ▹ Preferences... ▹ Privacy ▹ Remove All Website Data
and confirm. Test. -
How can I send a Numbers file to someone who has excel
how can I send a Numbers file to someone who has excel
Save/Export the file as an excel worksheet.
-
My mac is converting Word and Excel files into Pages and Numbers files when I click to open them from an email. Downloading them and opening them doesn't help. How do I make this stop? I don't use iLife and don't want to; my clients are using Office and it's easier for me, except when I have to copy and paste everything they send me from an iLife file back to Word and Excel. Help!!! It's like Apple has become Microsoft, forcing us to use their apps.
Do you have Word & Excel installed, if yes, navigate in the finder to an example of each, right click and select 'Get Info' scroll down to 'Open With' and select the appropriate program, check the box that says 'Change All'
-
Appending multiple *.csv files while retaining the original file name in the first column
Hi guys it's been awhile.
I'm trying to append multiple *.csv files while retaining the original file name in the first column, the actual data set is about 40 files.
file a.csv contains:
1, line one in a.csv
2, line two in a.csv
file b.csv contains:
1, line one in b.csv
2, line two in b.csv
output.csv result is this:
I would like this:
a.csv, 1, line one in a.csv
a.csv, 2, line two in a.csv
b.csv, 1, line one in b.csv
b.csv, 2, line two in b.csv
Any suggestions to speed up my hobbling attempts would be aprieciated
Thanks,
-SS
Solved!
Go to Solution.What you could do is given in the attachment.
Started with 2 files :
a.csv
copy of a.csv
Both with data :
1;1.123
2;2.234
3;3.345
Output :
a.csv;1;1.123
a.csv;2;2.234
a.csv;3;3.345
Copy of a.csv;1;1.123
Copy of a.csv;2;2.234
Copy of a.csv;3;3.345
If you have more questions, just shoot
Kind regards,
- Bjorn -
Have fun using LabVIEW... and if you like my answer, please pay me back in Kudo's
LabVIEW 5.1 - LabVIEW 2012
Attachments:
AppendingCSV.JPG 73 KB -
"Empty document Found" error while sending a text file
Below is the error I'm getting while I'm trying to send a txt file using a fiel adapter.
Channel FILE_TLE_Sender_SalesOrder_CC: Converted complete file content to XML format.
Channel FILE_TLE_Sender_SalesOrder_CC: Empty document found - proceed without sending message.
File "/data/TLE/XS1/inbound/850/Test_SalesOrder_3064_12-15-10.txt" deleted after processing.
On the Communication Channel this is what I have:
Recordset Name: DOCUMENT_ROOT
Recordset Structure: DOC_HEADER,1,PO_HEADER,1,TAX,,FREIGHT,,SPECIAL_SHIP,,DOCUMENT_NOTE,,SHIP_TO_ADDRESS,,PRODUCT,,LINE_SHIP,,LINE_ITEM_NOTE,,ASSOC_LINE,,ORDER_MEMO,,DOC_TRAILER,1
Key Field Name: keyfield
DOC_HEADER.fieldNames Value: keyfield,Source_System,Source_SUB_System,Source_Doc_Type,Source_Doc_Gen_Date,Source_Doc_Gen_Time,Source_Company,Source_Division,Source_Party_ID,Source_Ship_Location,Source_Sell_Location,Event_Name,Application_Program_File,Application_Program_Name,Destination_System,Destination_SUB_System,Destination_DOC_Type,Destination_Company,Destination_Division,Destination_Party_ID,Destination_Ship_Location,Destination_Sell_Location,Interchange_Control_Number,Group_Control_Number,Document_Control_Number,Date_Translated,Time_Translated,Primary_Key
DOC_HEADER.fieldFixedLengths Value: 30,30,30,30,10,4,30,15,30,20,20,8,30,30,30,30,30,30,15,30,20,20,10,10,10,10,4,30
DOC_HEADER.keyFieldValue Value: DOC_HEADER
DOC_HEADER.lastFieldsOptional Value: YES
DOC_HEADER.endSeparator Value: 'nl'
Then I have same pattern for PO_HEADER, TAX and so on....
Can someone tell me why this error is happening? I'm using the same exact parameters in another XI environment and there's no error there.> Channel FILE_TLE_Sender_SalesOrder_CC: Empty document found - proceed without sending message.
> Can someone tell me why this error is happening?
Maybe your source file is empty?
This is exact what the error message says. -
Error opening the PDF file while sending the PDF as an attachment
Hi All,
I am sending a PDF as an attachment in the mail. I am using the code pasted on 'Jul 28, 2006 8:59 AM' subject OTF Format of Purchase Order in email unreadable.
My problem is when I open the attachment in SOST or in the mail, I get the error message "Adobe could not open *.PDF because it is either not a supported file type or because the file type has been corrupted."
Please let me know if anybody has faced such an issue.
The code is found below.
FORM MAIL_OBJECT *
This routine receives OTF data. OTF data is converted to PDF
format and send to the Partner's email address
FORM mail_object TABLES otf_data STRUCTURE itcoo .
DATA: pdf_size TYPE i, " PDF Size
pdf_itab_size TYPE i, " Attachment size
mailtxt_size TYPE i, " Text in mail size
l_vbeln LIKE vbdka-vbeln. " Order Doc
DATA:
it_mailtxt LIKE solisti1 OCCURS 0 WITH HEADER LINE, " Mail Text
it_pdf TYPE TABLE OF tline WITH HEADER LINE, " OTF output
it_mailpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE, " Dist details
it_mailhead LIKE solisti1 OCCURS 1 WITH HEADER LINE," Header data
it_reclist LIKE somlreci1 OCCURS 0 WITH HEADER LINE, " Rec List
it_pdfdata LIKE solix OCCURS 0 WITH HEADER LINE. " Attachment data
DATA: it_doc_att LIKE sodocchgi1. " Attri of new doc
DATA: BEGIN OF it_pdfout OCCURS 0, " PDF in 255 length
tline TYPE char255,
END OF it_pdfout.
Sales doc and Customer
DATA: BEGIN OF i_vbeln OCCURS 0,
vbeln LIKE vbpa-vbeln, " Sales Document
adrnr LIKE vbpa-adrnr, " Customer
END OF i_vbeln.
Sender Address no and SMTP address
DATA: BEGIN OF i_addrs OCCURS 0,
addrnumber LIKE adr6-smtp_addr,
smtp_addr LIKE adr6-smtp_addr,
END OF i_addrs.
Convert OTF to PDF
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
IMPORTING
bin_filesize = pdf_size
TABLES
otf = otf_data
lines = it_pdf.
Make each line 255 characters
CALL FUNCTION 'SX_TABLE_LINE_WIDTH_CHANGE'
TABLES
content_in = it_pdf
content_out = it_pdfout.
Create the PDF File
CLEAR it_pdfdata.
REFRESH it_pdfdata.
it_pdfdata[] = it_pdfout[].
LOOP AT it_pdfout.
MOVE it_pdfout-tline TO it_pdfdata-line.
APPEND it_pdfdata.
CLEAR it_pdfdata.
ENDLOOP.
DESCRIBE TABLE it_pdfdata LINES pdf_itab_size.
Text in the mail.
it_mailtxt-line = 'ORDER ACKNOWLEDGEMENT'.
APPEND it_mailtxt.
it_mailtxt-line = ' This is a test mail, Line Number--1'.
APPEND it_mailtxt.
it_mailtxt-line = ' This is a test mail, Line Number--2' &
' This is a test mail, Line Number--2'.
APPEND it_mailtxt.
it_mailtxt-line = ' This is a test mail, Line Number--3' &
' This is a test mail, Line Number--3' &
' This is a test mail, Line Number--3'.
APPEND it_mailtxt.
it_mailtxt-line = ' This is a test mail, Line Number--4' &
' This is a test mail, Line Number--4' &
' This is a test mail, Line Number--4' &
' This is a test mail, Line Number--4'.
APPEND it_mailtxt.
it_mailtxt-line = ' This is a test mail, Line Number--5' &
' This is a test mail, Line Number--5' &
' This is a test mail, Line Number--5' &
' This is a test mail, Line Number--5' &
' This is a test mail, Line Number--5'.
APPEND it_mailtxt.
DESCRIBE TABLE it_mailtxt LINES mailtxt_size.
Document Number for Output
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = vbdka-vbeln
IMPORTING
output = l_vbeln.
Attributes of new doc
CONCATENATE 'Order' space 'Acknowledgement' space l_vbeln
INTO it_doc_att-obj_descr SEPARATED BY space.
it_doc_att-sensitivty = 'F'.
it_doc_att-doc_size = mailtxt_size * 255.
Create Pack to text in mail body.
CLEAR it_mailpack-transf_bin.
it_mailpack-head_start = 1.
it_mailpack-head_num = 0.
it_mailpack-body_start = 1.
it_mailpack-body_num = mailtxt_size.
it_mailpack-doc_type = 'RAW'.
APPEND it_mailpack.
Create Pack to PDF Attach.
it_mailpack-transf_bin = 'X'.
it_mailpack-head_start = 1.
it_mailpack-head_num = 1.
it_mailpack-body_start = 1.
it_mailpack-body_num = pdf_itab_size.
it_mailpack-doc_type = 'PDF'.
CONCATENATE l_vbeln '.pdf' INTO it_mailpack-obj_name.
CONCATENATE 'Order Ack' space l_vbeln INTO it_mailpack-obj_descr.
it_mailpack-doc_size = pdf_itab_size * 255.
APPEND it_mailpack.
*Get email addresses based on Sales document.
SELECT vbeln adrnr INTO TABLE i_vbeln
FROM vbpa
WHERE vbeln = vbdka-vbeln AND
parvw = nast-parvw.
IF NOT i_vbeln[] IS INITIAL.
SELECT addrnumber smtp_addr INTO TABLE i_addrs
FROM adr6 FOR ALL ENTRIES IN i_vbeln
WHERE addrnumber = i_vbeln-adrnr AND
smtp_addr NE space.
ENDIF.
IF i_addrs[] IS NOT INITIAL.
LOOP AT i_addrs.
it_reclist-receiver = i_addrs-smtp_addr.
it_reclist-express = 'X'.
it_reclist-rec_type = 'U'.
it_reclist-notif_del = 'X'. " request delivery notification
it_reclist-notif_ndel = 'X'. " request not delivered notification
APPEND it_reclist.
CLEAR: i_addrs.
ENDLOOP.
ENDIF.
Call FM to send email
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = it_doc_att
put_in_outbox = 'X'
TABLES
packing_list = it_mailpack
object_header = it_mailhead
contents_txt = it_mailtxt
contents_hex = it_pdfdata
receivers = it_reclist
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorizationfiltered= 4
parameter_error = 5
x_error = 6
enqueue_error = 7
OTHERS = 8.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " MAIL_OBJECT
Regards,
AjithHi Ajith !!
Please refer this link :
http://www.sapdevelopment.co.uk/reporting/rep_spooltopdf.htm
Here a spool output is converted into PDF and then sent as an email.
I think instead of using FM to change the width, try the logic mentioned in the link.
Also instead of FM CONVERT_TO_OTF use :
1. CONVERT_OTFSPOOLJOB_2_PDF
I hope this should solve the problem.
I had referred the same program from the link and it worked absolutely fine. Also check the adobe acrobat version, i guess old version doesnt support SAP, though not very sure.
Best regards,
Prashant -
Problem while sending IDOC to File Senario
Hi Experts
I am having problem while sending the Idoc from SAP R/3 to File
I have done all the setting in SAP as well in XI but while pushing IDOC
I am getting error in the transaction sm58 in SAP R/3
" <b>The service for the client 300(My SAP R/3 client) is not present in Integration
Directory</b>"
I can any one explain me what to done on this....all the connections are fine
Waiting for Response
Adv points and thanx
RakeshReason and Prerequisites
You send IDocs from system ABC to the exchange infrastructure (XI) of system XIZ, and error messages are issued in system ABC (Transaction SM58) for the IDOC_INBOUND_ASYNCHRONOUS function module.
This note proposes solutions for the following error messages:
a) No service for system SAPABC client 123 in the integration directory
b) Transaction IDX1: Port SAPABC, client 123, RFC destination
c) ::000
d) NO_EXEC_PERMISSION: "USER" "Business_System"
e) IDoc adapter inbound: Error error ...
Solution
a) Error message: No service for system SAPABC client 123 in the integration directory
Solution:
You send IDocs from system ABC to XI. In the control record of the IDoc, the SNDPOR field contains the value "SAPABC". The client of the sending system is determined by the MANDT field of the control record. The system ID and client are then used to determine a service without party of the type (business-system/business-service):
Business system
Activities in the System Landscape Directory (SLD)(Create technical system):
Create a technical system for system ABC in the SLD, and create the client for this. Do not forget to assign an "ALE logical system" (for example, "ABCCLNT123") to this technical system.
SLD (Business system):
You can now explicitly assign a business system to this client.
For more details, refer to the SLD documentation.
Activities in system ABC (self-registration in the SLD):
Alternatively, you can register the system in the SLD in system ABC with Transaction RZ70. You will find detailed information about the SLD registration of systems on the SAP Service Marketplace for the "Exchange Infrastructure" in the document "Exchange_Installation_Guide.pdf".
In system ABC, you can check your configuration with TransactionSLDCHECK.
Activities in Integration Directory (import business system from SLD):
You will find the business systems under Services Without Party in the Integration Services. In the Service menu, you will find the system identifiers, the client, and the corresponding ALE logical system under "Objects"->"Adapter-specific identifiers".
Use the Import/Update button to copy the data from the SLD, to create business systems, or to update their identifiers.
Business service
Activities in the Integration Builder directory:
You want to create a service without party that is not part of your system infrastructure and is therefore not maintained in the SLD.
In the Integration Builder directory, you will find the "Business-Services" under Services Without Party. In the Service menu, you will find the system identifiers, the client, and the corresponding ALE logical system under "Objects"->"Adapter-specific identifiers".
Activate the change list in Integration Directory.
In system ABC, you can restart the incorrect entry from Transaction SM58 .
b) Error message: Transaction IDX1: Port SAPABC, client 123, RFC destination
Solution:
The Integration Server tries to load the IDoc metadata from the sending system. The IDoc schemas from the Integration Repository cannot be used because they are release-dependent.
The sending system is determined by the value of the "SNDPOR" field from the IDoc control record (for example, "SAPABC").
Activities in the central XI system:
In Transaction IDX1, you can assign an RFC destination to the sending system (for example, "SAPABC"). This must be created beforehand in Transaction SM59.
Note that the IDoc metadata is cross-client data. In Transaction IDX1, only one entry must be maintained for each system. Only the lowest client is used by the runtime for Idoc metadata retrieval with RFC.
Ensure that only SAPABC and not "SAPABC_123" is entered in the port name.
c) Error message: "::000"
Solution:
This error occurs if the central XI system tries to load the IDoc metadata from the sending system by RFC.
There may be several different reasons for the failure of the metadata import, the error is not transferred in full by tRFC completely, and this results in the error message above.
User cannot log onto sending system
User/password/client is not correct or the user is logged due to too many failed logons.
Activities in sender system ABC:
Transaction SM21 contains entries for failed logons.
Activities in the central XI system:
Determine the sending port from the IDoc control record of the IDoc. If the ID of the sending system has the value "ABC", the value of the sending port is "SAPABC". You will find the RFC destination used for the "SAPABC" sending port with the lowest client in Transaction IDX1. In Transaction SM59, you will find the RFC destination containing the maintained logon data .
User does not have the required authorizations
Activities in the sender system ABC:
In Transaction SM21, you will find entries relating to authorization problems and more exact details.
Contact your system administrator and, if necessary, assign the user the required roles in user administration.
IDoctyp/Cimtyp cannot be loaded
Activities in sender system ABC:
In the sender system, you can check your IDoc types in Transaction WE30 (IDoc type editor) Take note not only of the errors, but also of the warnings.
The most common errors are:
- IDoc type or segments not released
- Segments that no longer exist are listed in the IDoc type
- Data elements that do not exist in the DDIC are assigned to fields
in the segment.
Contact your system administrator and correct these errors in the IDoc type.
d) Error message: NO_EXEC_PERMISSION: "User" "Business_System"
Solution:
You created a list of users in the directory who are authorized to use the "Business_System". The user in the error message is not on the list.
Alternatively, the same error is used if you have created a sender agreement with a channel of the IDoc type for the "Business_System" and the interface used. The user in the error message is not contained in the list of all authorized users defined there.
e) Error message: IDoc adapter inbound: Error error
Solution:
You send IDocs to the central XI system, where they are received by the IDoc adapter. The IDocs are converted into IDoc XML, and a corresponding XI message is generated and transferred to the XI Runtime Engine. The Engine tries to read its own business system from the "Exchange Profile". If the Exchange Profile is currently unavailable, the message is not processed and it is returned to the sending system with an error message.
Regard's
Prabhakar..... -
How is it possible, that a pdf file turns into a psd file while sending with mail
I have send a pdf file as attachment with mail. the file shows correctly as pdf file. but when the file arrived at the addressed location it turned into a psd file. in addition it seems there is a problem sending png and ai files. once those files have arrived through mail I am getting the feedback, that the files are are not scalable, they are fuzzy or completely messed up.
has anyone an idea, where the problem comes from?
thanks for response
angelikaHello,
toddisalive wrote:
Additionally, I have found an AppleWorks file that could be the script, but it is ZERO bytes in size, and Pages won't even open it, saying that it is not a valid AppleWorks file.
if the size of this file is really ZERO bytes, either the original file contained an empty data fork and a resource fork which was stored elsewhere (*) or the file is too damaged to retrieve anything. Moreover, as AppleWorks never generates file with empty data fork, at least to my knowledge, ....
Concerning the Movie Magic ScreenWriter files, the application seems to exist for Yosemite http://www.write-bros.com/movie-magic-screenwriter.html ( but it seems "expensive" and I do not know if it accepts to import old files )....
(*) maybe in .TOTO or __MACOSX/.TOTO if the filename is TOTO -
File Adapter - Reading 2 files from sender and one file to receiver
All - I am looking for a best solution for reading two files from sender and generating one file to the receiver.
Here is the scenario
Sender file s - A is a master file. B is a detail file; B will have a one to many records for each record of File A.. that is the relation ship between 2 files.. I am looking for a better solution to
Example
Input:
File A will have a record like "summary1 ABC 1234"
File B will have a record like "Detailfor Summary1 CDF 8679"
Output:
File C shall have a record "consolidatedofSummary&Detail ABC 1234 8679"
1) read records of master row and detail row from these 2 files
2) do the mapping to the receiver output format which it is creating for records with some harcoded values and based on the values from master and detail rows of sender file
if I can accomblish reading sender files and do the mapping to the receiver , assume that mapping to the receiver format would not be cumbersome.
please help me...
ThanksHi Gopal,
Ur approach to the interface is perfect.... Go ahead.
For selecting multiple files in source use Advanced Selection for files.. and specify the directory paths and also the file name shema...
This will fetch the 2 files into the integration engine... then u map the 2 source files to one target file(2:1 mapping).
Specify accordingly the receiver side FCC and test it end to end...
If u face any prblm post here... some1 will help u out..
Babu -
Title from previous Numbers file printing on new Numbers file
I have a Numbers 3.2 file that was originally created by duplicating another Numbers file in a previous version of Numbers. When I print this newer file, the title of the other file prints above each table in the file, though this title does not show above each table while I’m working on it, and I can’t find a way to get access to the title. Adding a “Table Name” does not change this situation.
Any ideas how I can get access to this title? Thanks!
And why can’t I upload images to illustrate the problem? I’ve tried both jpg and pdf - the “insert image” button remains grayed out after I select the file to upload.Hi prismalight,
Wayne Contello has written a User Tip on how to post a screen shot.
https://discussions.apple.com/docs/DOC-6591
If 'Insert Image' is greyed out, Close the Insert Box (red cross on the top right) click on the camera icon again. Camera icon sometimes needs a wake-up call, but works the second time.
Remove any personal details before taking the screen shot.
Regards,
Ian. -
XI File Adapter sending/receiving zip files
Can the XI File Adapter create a zip file to send outbound from XI and/or can it also translate a zip file inbound into XI?
Hi Kirk.
What you can do is use the OS command option on the adapter in order to unzip the file after the File\FTP adapter completes its file transfer to the specified path.One of my colleagues used a freeware zip app. that excepts an os command actions.
I know it works for file receiver but not sure about the sender. check SAP Note 801926 for more sender adapter parameters.
Regards
Nimrod Gisis -
Issue while sending a zipped file from ABAP to JAVA layer
Hi All,
I have a requirement wherein i have to zip a xml file in abap, convert it to base64 encoded string and send it to JAVA layer.
I'm using the class CL_ABAP_ZIP for zipping the xml string and FM "SCMS_BASE64_ENCODE_STR" to convert the zipped data to base64 encoded string.
But on the JAVA layer we get an exception while unzipping this data.
Has anybody come across a similar situtation.
Please help.
Regards,
Ankit AgrawalExample
REPORT Z_PAP_UP_ZIP_DL.
DATA: L_ZIPPER TYPE REF TO cl_abap_zip.
DATA: FILEX type XSTRING.
DATA: FILENAME type string.
DATA: PATH type string.
DATA: zip type xstring.
DATA: FILE_N_TAB type FILETABLE.
DATA: FULL_PATH type string.
DATA: FILE_LENGTH type i.
DATA: FILE_TAB type w3mimetabtype.
DATA: WA_INT type int4.
DATA: PATH_TABLE TYPE TABLE of char1024.
" Load the file
"Which file to upload
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
CHANGING
FILE_TABLE = FILE_N_TAB
RC = WA_INT
"load the (first) file from the frontend the user has selected.
LOOP at FILE_N_TAB into FULL_PATH.
"get the file
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
EXPORTING
FILENAME = FULL_PATH
FILETYPE = 'BIN'
IMPORTING
FILELENGTH = FILE_LENGTH
CHANGING
DATA_TAB = file_tab.
exit.
endloop.
"create xstring from table
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
EXPORTING
INPUT_LENGTH = FILE_LENGTH
IMPORTING
BUFFER = FILEX
TABLES
BINARY_TAB = file_tab
"get the name of the file. we take entry after the last '\' ...windows.
SPLIT FULL_PATH AT '\' INTO TABLE PATH_TABLE.
DESCRIBE TABLE PATH_TABLE LINES WA_INT.
READ TABLE PATH_TABLE INTO FILENAME INDEX WA_INT. -
Attaching File While Sending Mail
Dear All,
I want to send mail through sap for that i have used function module 'SO_NEW_DOCUMENT_SEND_API1'. Can anybode tell me how can i attach file in this mail.
Regards,
Mayankhi check this..
REPORT ZMAIL.
TABLES: ekko.
PARAMETERS: p_email TYPE somlreci1-receiver .(give email here)
TYPES: BEGIN OF t_ekpo,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
aedat TYPE ekpo-aedat,
matnr TYPE ekpo-matnr,
END OF t_ekpo.
DATA: it_ekpo TYPE STANDARD TABLE OF t_ekpo INITIAL SIZE 0,
wa_ekpo TYPE t_ekpo.
TYPES: BEGIN OF t_charekpo,
ebeln(10) TYPE c,
ebelp(5) TYPE c,
aedat(8) TYPE c,
matnr(18) TYPE c,
END OF t_charekpo.
DATA: wa_charekpo TYPE t_charekpo.
DATA: it_message TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
WITH HEADER LINE.
DATA: it_attach TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
WITH HEADER LINE.
DATA: t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
t_contents LIKE solisti1 OCCURS 0 WITH HEADER LINE,
t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
t_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE,
t_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE,
w_cnt TYPE i,
w_sent_all(1) TYPE c,
w_doc_data LIKE sodocchgi1,
gd_error TYPE sy-subrc,
gd_reciever TYPE sy-subrc.
*START_OF_SELECTION
START-OF-SELECTION.
Retrieve sample data from table ekpo
PERFORM data_retrieval.
Populate table with detaisl to be entered into .xls file
PERFORM build_xls_data_table.
*END-OF-SELECTION
END-OF-SELECTION.
Populate message body text
perform populate_email_message_body.
Send file by email as .xls speadsheet
PERFORM send_file_as_email_attachment
tables it_message
it_attach
using p_email
'Example .xls documnet attachment'
'XLS'
'filename'
changing gd_error
gd_reciever.
Instructs mail send program for SAPCONNECT to send email(rsconn01)
PERFORM initiate_mail_execute_program.
*& Form DATA_RETRIEVAL
Retrieve data form EKPO table and populate itab it_ekko
FORM data_retrieval.
SELECT ebeln ebelp aedat matnr
UP TO 10 ROWS
FROM ekpo
INTO TABLE it_ekpo.
ENDFORM. " DATA_RETRIEVAL
*& Form BUILD_XLS_DATA_TABLE
Build data table for .xls document
FORM build_xls_data_table.
data: ld_store(50) type c. "Leading zeros
CONSTANTS: con_cret(5) TYPE c VALUE '0D', "OK for non Unicode
con_tab(5) TYPE c 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 'EBELN' 'EBELP' 'AEDAT' 'MATNR' INTO it_attach SEPARATED BY con_tab.
CONCATENATE con_cret it_attach INTO it_attach.
APPEND it_attach.
LOOP AT it_ekpo INTO wa_charekpo.
*Modification to retain leading zeros
inserts code for excell REPLACE command into ld_store
=REPLACE("00100",1,5,"00100")
concatenate '=REPLACE("' wa_charekpo-ebelp '",1,5,"'
wa_charekpo-ebelp '")' into ld_store .
concatenate ld_store into .xls file instead of actual value(ebelp)
CONCATENATE wa_charekpo-ebeln ld_store wa_charekpo-aedat wa_charekpo-matnr INTO it_attach SEPARATED BY con_tab.
CONCATENATE con_cret it_attach INTO it_attach.
APPEND it_attach.
ENDLOOP.
ENDFORM. " BUILD_XLS_DATA_TABLE
*& Form SEND_FILE_AS_EMAIL_ATTACHMENT
Send email
FORM send_file_as_email_attachment tables pit_message
pit_attach
using p_email
p_mtitle
p_format
p_filename
p_attdescription
p_sender_address
p_sender_addres_type
changing p_error
p_reciever.
DATA: ld_error TYPE sy-subrc,
ld_reciever TYPE sy-subrc,
ld_mtitle LIKE sodocchgi1-obj_descr,
ld_email LIKE somlreci1-receiver,
ld_format TYPE so_obj_tp ,
ld_attdescription TYPE so_obj_nam ,
ld_attfilename TYPE so_obj_des ,
ld_sender_address LIKE soextreci1-receiver,
ld_sender_address_type LIKE soextreci1-adr_typ,
ld_receiver LIKE sy-subrc.
ld_email = p_email.
ld_mtitle = p_mtitle.
ld_format = p_format.
ld_attdescription = p_attdescription.
ld_attfilename = p_filename.
ld_sender_address = p_sender_address.
ld_sender_address_type = p_sender_addres_type.
Fill the document data.
w_doc_data-doc_size = 1.
Populate the subject/generic message attributes
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = ld_mtitle .
w_doc_data-sensitivty = 'F'.
Fill the document data and get size of attachment
CLEAR w_doc_data.
READ TABLE it_attach INDEX w_cnt.
w_doc_data-doc_size =
( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = ld_mtitle.
w_doc_data-sensitivty = 'F'.
CLEAR t_attachment.
REFRESH t_attachment.
t_attachment[] = pit_attach[].
Describe the body of the message
CLEAR t_packing_list.
REFRESH t_packing_list.
t_packing_list-transf_bin = space.
t_packing_list-head_start = 1.
t_packing_list-head_num = 0.
t_packing_list-body_start = 1.
DESCRIBE TABLE it_message LINES t_packing_list-body_num.
t_packing_list-doc_type = 'RAW'.
APPEND t_packing_list.
Create attachment notification
t_packing_list-transf_bin = 'X'.
t_packing_list-head_start = 1.
t_packing_list-head_num = 1.
t_packing_list-body_start = 1.
DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
t_packing_list-doc_type = ld_format.
t_packing_list-obj_descr = ld_attdescription.
t_packing_list-obj_name = ld_attfilename.
t_packing_list-doc_size = t_packing_list-body_num * 255.
APPEND t_packing_list.
Add the recipients email address
CLEAR t_receivers.
REFRESH t_receivers.
t_receivers-receiver = ld_email.
t_receivers-rec_type = 'U'.
t_receivers-com_type = 'INT'.
t_receivers-notif_del = 'X'.
t_receivers-notif_ndel = 'X'.
APPEND t_receivers.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = w_doc_data
put_in_outbox = 'X'
sender_address = ld_sender_address
sender_address_type = ld_sender_address_type
commit_work = 'X'
IMPORTING
sent_to_all = w_sent_all
TABLES
packing_list = t_packing_list
contents_bin = t_attachment
contents_txt = it_message
receivers = t_receivers
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
OTHERS = 8.
Populate zerror return code
ld_error = sy-subrc.
Populate zreceiver return code
LOOP AT t_receivers.
ld_receiver = t_receivers-retrn_code.
ENDLOOP.
ENDFORM.
*& Form INITIATE_MAIL_EXECUTE_PROGRAM
Instructs mail send program for SAPCONNECT to send email.
FORM initiate_mail_execute_program.
WAIT UP TO 2 SECONDS.
SUBMIT rsconn01 WITH mode = 'INT'
WITH output = 'X'
AND RETURN.
ENDFORM. " INITIATE_MAIL_EXECUTE_PROGRAM
*& Form POPULATE_EMAIL_MESSAGE_BODY
Populate message body text
form populate_email_message_body.
REFRESH it_message.
it_message = 'Please find attached a list test ekpo records'.
APPEND it_message.
endform. " POPULATE_EMAIL_MESSAGE_BODY
regards,
venkat -
Need to insert 'end of line' while writing to a file
I am writing strings to a file using FileWriter, but have a problem writing each string on a new line.
Here is a sample of my Code
FileWriter MyFileWriter = new FileWriter(ToFile);
while (NotDone){
MyFileWriter.write(MyListModel.getElementAt(OrderListIndex) +"\n");
OrderFileWriter.close();
As the result, in my new file all strings appear on the same line with a weird character at the end representing new line.
Any suggestions on how to write each string on a new line?
I am sorry.. what i gave was not the line seperator charecter....
You can use either
String sep=System.getProperty("line.separator");
MyFileWriter.write(MyListModel.getElementAt(OrderListIndex) +sep);or use a PrintWriter
PrintWriter MyFileWriter = new PrintWriter(new BufferedWriter(new FileWriter(ToFile)));
//FileWriter MyFileWriter = new FileWriter(ToFile);
while (NotDone){
MyFileWriter.write(MyListModel.getElementAt(OrderListIndex));
MyFileWriter.newLine()
}Hope it helped
Maybe you are looking for
-
Need help in Line bar combo chart - line is not prominent in dashboard
Hi All, I face an issue where the line in a line bar combo chart is not prominent in Dashbords. lets say i have 5 reports (all of them are line bar combo charts) in a dashboard. The lines in graph are not prominent or not displayed in usual thickness
-
How to eliminate the thumbnail picture from a .TIFF picture?
I apologize but could not think of a more suitable forum to ask the question - if someone has an idea for a better place, I will appreciate. When I create a picture with my (Nikon) camera in the TIFF format, it appears that the picture file contains
-
Migrating jdev9i to jdev10g(10.1.3)
Hi, I am developed an application using oracle jdev9i.now i want to migrate to jdev10g(10.1.3).But it shows lots of errors.Is there any solution how to migrate to jdev9i to jdev10g(10.1.3).
-
Pass parameter from one jsff to other in bounded task flow
Hi All, I'm using 11g adf. I have a requiement to get parameters value from one jsff to another jsff . In bounded taskflow , the trans.jff has parameters which i have to carry to couple of detaill.jsff (5 jsff). In between trans.jsff and detail.jsff
-
Can you fix my ipod cause it got caught in the drier
I would like to know if you could take my ipod touch and replace the screen for free