04-01-2009 3:16 PM
hi
i am using the fm SO_NEW_DOCUMENT_SEND_API1
seding some data to the particular users but i am facing a problem here
0000000572 |US NEW YORK
0000001250 |DE Hamburg
0000001251 |DE Frankfurt
0000001252 |DE Berlin
0000002025 |GB London
0000002350 |ES Madrid
0000003271 |US ANTIOCH
0000003272 |US SEATTLE
0000003273 |US MINNEAPOLIS
i am not getting the data in particular format what i have to do
i am getting the data in a zigzag form
thanks
Edited by: suma2285 on Apr 1, 2009 4:17 PM
04-01-2009 3:21 PM
Hi,
Try using the Offset like show below ..
LOOP AT p_emp_details INTO i_emp_details_line
l_obj-line = i_emp_details_line-ename.
l_obj-line+60 = i_emp_details_line-ltext.
l_obj-line+128 = i_emp_details_line-srvdt.
l_obj-line+150 = i_emp_details_line-mndat.
APPEND l_obj TO lt_objtxt. CLEAR l_obj.
OR
Concatenate i_emp_details_line-ename
i_emp_details_line-ltext
i_emp_details_line-srvdt
i_emp_details_line-mndat
INTO l_string
SEPARATED BY cl_abap_char_utilities=>horizontal_tab.
APPEND l_string TO lt_objtxt. CLEAR l_obj.
ENDLOOP.
04-01-2009 3:37 PM
hi
thanks for the reply i have tried the above one but it is not working
after 128 places again it is coming ina zigzag format
can u help me
thanks
04-01-2009 3:46 PM
Hi,
If you showing this as email attachment then go for Excel instead of Text.
Or
If you are displaying in the Body then go for the HTML body.
Check this link..http://docs.google.com/Doc?id=dfv2hmgs_0fm22tggx&hl=en
Which has Excel as attachment and table in the EMAIL body using HTML.
04-01-2009 3:31 PM
Suma,
What value do you have gs_packing_list-doc_type, this belongs to the Tables parameter as shown below . This should be 'RAW'.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = gs_docdata
put_in_outbox = 'X'
TABLES
packing_list = gt_packing_list
Thnaks,
Santosh.
04-01-2009 3:37 PM
HI,
i think you are getting proper output. if the line is exceeding more then specifed length it would look like zigzag. just see the ouput by setting outlook property as HTML.
04-01-2009 7:32 PM
Hi Suma,
See tha sample code for Send mail..
report zsendmail.
data: maildata type sodocchgi1.
data: mailtxt type table of solisti1 with header line.
data: mailrec type table of somlrec90 with header line.
start-of-selection.
clear: maildata, mailtxt, mailrec.
refresh: mailtxt, mailrec.
maildata-obj_name = 'TEST'.
maildata-obj_descr = 'Test'.
maildata-obj_langu = sy-langu.
do 100 times.
mailtxt-line = 'This is a test'.
append mailtxt.
enddo.
mailrec-receiver = 'gsasidhar-yahoo-com'.
mailrec-rec_type = 'U'.
append mailrec.
* mailrec-receiver = 'NTWDEV'.
* mailrec-rec_type = 'B'.
* append mailrec.
call function 'SO_NEW_DOCUMENT_SEND_API1'
exporting
document_data = maildata
document_type = 'RAW'
put_in_outbox = 'X'
tables
object_header = mailtxt
object_content = mailtxt
receivers = mailrec
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 SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
regards,
Prabhudas
04-02-2009 6:03 AM
HI
I have checked the above solutions but it is not working
when i am sending a mail to sap inbox the data it is showing in a zigzag form
how to rectify it........
thanks
04-02-2009 6:30 AM
just hint: there is a blog by Naimesh Patel, pls. search for the same in google.
thanq
04-02-2009 6:50 AM
Hi,
Call this FM 'SO_NEW_DOCUMENT_SEND_API1' in your program.
Regards,
Jyothi CH.
04-02-2009 7:08 AM
Hi,
I was also facing the same problem
Then I used the following method.
It will definetly work.
Try out this.
DATA: SEND_REQUEST TYPE REF TO CL_BCS.
DATA: SUBJECT TYPE SO_OBJ_DES.
DATA: ATT_TYPE TYPE SOODK-OBJTP.
DATA: IT_TEXT TYPE BCSY_TEXT.
DATA: WA_TEXT LIKE SOLI.
DATA: IT_BIN TYPE SOLIX_TAB.
DATA: WA_BIN TYPE SOLIX.
DATA: DOCUMENT TYPE REF TO CL_DOCUMENT_BCS.
DATA: SENDER TYPE REF TO CL_SAPUSER_BCS.
DATA: RECIPIENT TYPE REF TO IF_RECIPIENT_BCS.
DATA: BCS_EXCEPTION TYPE REF TO CX_BCS.
DATA: SENT_TO_ALL TYPE OS_BOOLEAN.
Bytes der Datei
DATA: IT_LENGHT TYPE SO_OBJ_LEN.
DATA: N10(10) TYPE N.
*
************************************************************************
START-OF-SELECTION.
PERFORM MAIN.
PERFORM RSCONN01_EXECUTE.
END-OF-SELECTION.
************************************************************************
FORM MAIN.
TRY.
*
Dokument erstellen (mit Anhang)
SEND_REQUEST = CL_BCS=>CREATE_PERSISTENT( ).
*
PERFORM HEAD_CONT.
PERFORM RAW_ATT.
Dokument (mit Anhang) setzen
CALL METHOD SEND_REQUEST->SET_DOCUMENT( DOCUMENT ).
*
Absender setzen
*
SENDER = CL_SAPUSER_BCS=>CREATE( SY-UNAME ).
CALL METHOD SEND_REQUEST->SET_SENDER
EXPORTING
I_SENDER = SENDER.
*
Empfänger setzen
*
RECIPIENT = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS(
'email@address' ).
CALL METHOD SEND_REQUEST->ADD_RECIPIENT
EXPORTING
I_RECIPIENT = RECIPIENT
I_EXPRESS = 'X'.
*
Dokument senden
*
CALL METHOD SEND_REQUEST->SEND(
EXPORTING
I_WITH_ERROR_SCREEN = 'X'
RECEIVING
RESULT = SENT_TO_ALL ).
*
COMMIT WORK.
*
Sende-Error abfangen
CATCH CX_BCS INTO BCS_EXCEPTION.
WRITE: 'Fehler aufgetreten.'(001).
WRITE: 'Fehlertyp:'(002), BCS_EXCEPTION->ERROR_TYPE.
EXIT.
ENDTRY.
ENDFORM. "main
************************************************************************
FORM HEAD_CONT.
*
CLEAR: IT_TEXT[], WA_TEXT, SUBJECT.
*
ATT_TYPE = 'RAW'.
SUBJECT = 'Betreffzeile'.
*
WA_TEXT = 'First Line'. APPEND WA_TEXT TO IT_TEXT.
WA_TEXT = 'Second Line'. APPEND WA_TEXT TO IT_TEXT.
*
DESCRIBE TABLE IT_TEXT LINES N10.
N10 = ( N10 - 1 ) * 255 + STRLEN( WA_TEXT ).
IT_LENGHT = N10.
*
TRY.
*
DOCUMENT = CL_DOCUMENT_BCS=>CREATE_DOCUMENT(
I_TYPE = ATT_TYPE
I_TEXT = IT_TEXT
I_LENGTH = IT_LENGHT
I_SUBJECT = SUBJECT ).
*
Error abfangen
CATCH CX_BCS INTO BCS_EXCEPTION.
WRITE: 'Fehler aufgetreten.'(001).
WRITE: 'Fehlertyp:'(002), BCS_EXCEPTION->ERROR_TYPE.
EXIT.
ENDTRY.
*
ENDFORM. "HEAD_CONT
*&----
*
*& Form RAW_ATT
*&----
*
text
*----
*
FORM RAW_ATT.
*
CLEAR: IT_TEXT[], WA_TEXT, SUBJECT.
*
ATT_TYPE = 'RAW'.
*
SUBJECT = 'Text Anhang'.
*
WA_TEXT = 'First Line in ATT'. APPEND WA_TEXT TO IT_TEXT.
WA_TEXT = 'Second Line in ATT'. APPEND WA_TEXT TO IT_TEXT.
*
Lenght of Att_Text
DESCRIBE TABLE IT_TEXT LINES N10.
N10 = ( N10 - 1 ) * 255 + STRLEN( WA_TEXT ).
IT_LENGHT = N10.
*
TRY.
*
CALL METHOD DOCUMENT->ADD_ATTACHMENT
EXPORTING
I_ATTACHMENT_TYPE = ATT_TYPE
I_ATT_CONTENT_TEXT = IT_TEXT
I_ATTACHMENT_SIZE = IT_LENGHT
I_ATTACHMENT_SUBJECT = SUBJECT.
*
Error abfangen
CATCH CX_BCS INTO BCS_EXCEPTION.
WRITE: 'Fehler aufgetreten.'(001).
WRITE: 'Fehlertyp:'(002), BCS_EXCEPTION->ERROR_TYPE.
EXIT.
ENDTRY.
*
ENDFORM. "ATT_RAW
*&----
*
*& Form RSCONN01_EXECUTE
*&----
*
text
*----
*
FORM RSCONN01_EXECUTE.
Besser 2 Sekunden warten, damit alles versendet ist
WAIT UP TO 2 SECONDS.
*
SUBMIT RSCONN01 WITH MODE = 'INT'
WITH OUTPUT = ' '
AND RETURN.
*
ENDFORM. "RSCONN01_EXECUTE
************************************************************************
In the method RECIPIENT = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS(
'email@address' ).
Add the Email ID to which you want to send the mail.
This will definetly work.
Thanks and Regards,
Smriti
04-02-2009 9:49 AM
hi
I am not getting the output in correct format it is coming in a zigzag way
but in sap inbox there is on setting 'TEXT IN NON PROPORTIONA FONT' by selecting these one it is getting correct.
But with out doing thse one is there an chance to get the ouput in a prepoer format.
and is it possible to send the data in a tabular format to the mail
thanks
04-02-2009 10:05 AM
Hello ,
Check this Program , May be you will get Idea .
DATA: SEND_REQUEST TYPE REF TO CL_BCS.
DATA: SUBJECT TYPE SO_OBJ_DES.
DATA: ATT_TYPE TYPE SOODK-OBJTP.
DATA: IT_TEXT TYPE BCSY_TEXT.
DATA: WA_TEXT LIKE SOLI.
DATA: IT_BIN TYPE SOLIX_TAB.
DATA: WA_BIN TYPE SOLIX.
DATA: DOCUMENT TYPE REF TO CL_DOCUMENT_BCS.
DATA: SENDER TYPE REF TO CL_SAPUSER_BCS.
DATA: RECIPIENT TYPE REF TO IF_RECIPIENT_BCS.
DATA: BCS_EXCEPTION TYPE REF TO CX_BCS.
DATA: SENT_TO_ALL TYPE OS_BOOLEAN.
Bytes der Datei
DATA: IT_LENGHT TYPE SO_OBJ_LEN.
DATA: N10(10) TYPE N.
*
************************************************************************
START-OF-SELECTION.
PERFORM MAIN.
PERFORM RSCONN01_EXECUTE.
END-OF-SELECTION.
************************************************************************
FORM MAIN.
TRY.
*
Dokument erstellen (mit Anhang)
SEND_REQUEST = CL_BCS=>CREATE_PERSISTENT( ).
*
PERFORM HEAD_CONT.
PERFORM RAW_ATT.
Dokument (mit Anhang) setzen
CALL METHOD SEND_REQUEST->SET_DOCUMENT( DOCUMENT ).
*
Absender setzen
*
SENDER = CL_SAPUSER_BCS=>CREATE( SY-UNAME ).
CALL METHOD SEND_REQUEST->SET_SENDER
EXPORTING
I_SENDER = SENDER.
*
Empfänger setzen
*
RECIPIENT = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS(
'email@address' ).
CALL METHOD SEND_REQUEST->ADD_RECIPIENT
EXPORTING
I_RECIPIENT = RECIPIENT
I_EXPRESS = 'X'.
*
Dokument senden
*
CALL METHOD SEND_REQUEST->SEND(
EXPORTING
I_WITH_ERROR_SCREEN = 'X'
RECEIVING
RESULT = SENT_TO_ALL ).
*
COMMIT WORK.
*
Sende-Error abfangen
CATCH CX_BCS INTO BCS_EXCEPTION.
WRITE: 'Fehler aufgetreten.'(001).
WRITE: 'Fehlertyp:'(002), BCS_EXCEPTION->ERROR_TYPE.
EXIT.
ENDTRY.
ENDFORM. "main
************************************************************************
FORM HEAD_CONT.
*
CLEAR: IT_TEXT[], WA_TEXT, SUBJECT.
*
ATT_TYPE = 'RAW'.
SUBJECT = 'Betreffzeile'.
*
WA_TEXT = 'First Line'. APPEND WA_TEXT TO IT_TEXT.
WA_TEXT = 'Second Line'. APPEND WA_TEXT TO IT_TEXT.
*
DESCRIBE TABLE IT_TEXT LINES N10.
N10 = ( N10 - 1 ) * 255 + STRLEN( WA_TEXT ).
IT_LENGHT = N10.
*
TRY.
*
DOCUMENT = CL_DOCUMENT_BCS=>CREATE_DOCUMENT(
I_TYPE = ATT_TYPE
I_TEXT = IT_TEXT
I_LENGTH = IT_LENGHT
I_SUBJECT = SUBJECT ).
*
Error abfangen
CATCH CX_BCS INTO BCS_EXCEPTION.
WRITE: 'Fehler aufgetreten.'(001).
WRITE: 'Fehlertyp:'(002), BCS_EXCEPTION->ERROR_TYPE.
EXIT.
ENDTRY.
*
ENDFORM. "HEAD_CONT
&----
-
*& Form RAW_ATT
&----
-
text
-
-
FORM RAW_ATT.
*
CLEAR: IT_TEXT[], WA_TEXT, SUBJECT.
*
ATT_TYPE = 'RAW'.
*
SUBJECT = 'Text Anhang'.
*
WA_TEXT = 'First Line in ATT'. APPEND WA_TEXT TO IT_TEXT.
WA_TEXT = 'Second Line in ATT'. APPEND WA_TEXT TO IT_TEXT.
*
Lenght of Att_Text
DESCRIBE TABLE IT_TEXT LINES N10.
N10 = ( N10 - 1 ) * 255 + STRLEN( WA_TEXT ).
IT_LENGHT = N10.
*
TRY.
*
CALL METHOD DOCUMENT->ADD_ATTACHMENT
EXPORTING
I_ATTACHMENT_TYPE = ATT_TYPE
I_ATT_CONTENT_TEXT = IT_TEXT
I_ATTACHMENT_SIZE = IT_LENGHT
I_ATTACHMENT_SUBJECT = SUBJECT.
*
Error abfangen
CATCH CX_BCS INTO BCS_EXCEPTION.
WRITE: 'Fehler aufgetreten.'(001).
WRITE: 'Fehlertyp:'(002), BCS_EXCEPTION->ERROR_TYPE.
EXIT.
ENDTRY.
*
ENDFORM. "ATT_RAW
&----
-
*& Form RSCONN01_EXECUTE
&----
-
text
-
-
FORM RSCONN01_EXECUTE.
Besser 2 Sekunden warten, damit alles versendet ist
WAIT UP TO 2 SECONDS.
*
SUBMIT RSCONN01 WITH MODE = 'INT'
WITH OUTPUT = ' '
AND RETURN.
*
ENDFORM. "RSCONN01_EXECUTE
************************************************************************
In the method RECIPIENT = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS(
'email@address' ).
Add the Email ID to which you want to send the mail.
It will work .
Regards ,
GJ