Receiver mailadapter with mailpackage and attachment
Hi there!!
My scenario is as folows:
I send via ABAP proxy an application XML and add additional plain text attachment to this. At the receiver side I use receiver mailadapter with mail-package. With my interface mapping I map application XML to mailpackage and use content-type text/HTML. I checked checkbox in adapter "keep attachments".
Result is that the mail i receive contains 2 attachments (1 HTML file and 1 .txt file). However the main body of the e-mail contains the content of the plain text file. I want to have the content of the html to be the main body of the mail. I already tried to use payload swap been however without succes because it seems that in the adapter module chain when reaching the actual mail module: sap.com/com.sap.aii.adapter.mail.app/XIMailAdapterBean the main payload is switched to the plain text attachment. Also changing the sequence in the module chain did not work.
Any suggestions?
Cheers,
Emile
When you want to use mail package to create an email with attachment, the whole email, body and attachment must be inside the tag content_type.
Like in this blog:
/people/stefan.grube/blog/2007/04/17/xi-mail-adapter-an-approach-for-sending-emails-with-attachment-with-help-of-java-mapping
In your scenario, you should uncheck the flag "mail package".
Regards
Stefan
Similar Messages
-
Receive mail with POP3 and saving to file using XI
Hello! I'm new to XI, could you help me with this "simple" task: Receive mail with POP3 and saving to file.
Thanks!Hi,
you will need:
Mail Sender Adapter
http://help.sap.com/saphelp_nw04s/helpdata/en/23/c093409c663228e10000000a1550b0/frameset.htm
and File Receiver Adapter
http://help.sap.com/saphelp_nw04s/helpdata/en/bc/bb79d6061007419a081e58cbeaaf28/frameset.htm
Regards
Patrick -
Mail sending with subject and attachment
hai all,
my requiremnet is i want to send a mail with a body and pdf attachemnt , but with the below code iam able to send both as attachment , but how to send along with body.
*& Report ZV_TEST *
Report ZV_TEST no standard Page heading line-size 200.
Tables: Pa0105,
pernr,
QPPNP,
HRPY_RGDIR,
SSCRFIELDS,
pa0002.
Constants
constants:
begin of F__LTYPE, "type of line
CMD like PC408-LTYPE value '/:', "command
TXT like PC408-LTYPE value 's', "textline
end of F__LTYPE.
constants:
begin of F__CMD, "commands
NEWPAGE like PC408-LINDA value '<NEW-PAGE>',
end of F__CMD.
CONSTANTS: c_dev LIKE sy-sysid VALUE 'DEV',
c_no(1) TYPE c VALUE ' ',
c_device(4) TYPE c VALUE 'LOCL'.
Data Declaration
DATA:Begin of Itab occurs 0,
pernr like HRPY_RGDIR-PERNR,
SEQNR like HRPY_RGDIR-SEQNR,
PAYSLIP_VARIANT like BAPI7004-PAYSLIP_VARIANT,
end of itab.
data: P_INFO like PC407,
P_INFO1 like PC407,
P_FORM like PC408 occurs 0 with header line,
P_P_FORM like PC408 occurs 0 with header line,
RETURN like BAPIRETURN1 occurs 0 with header line,
PAY_VAR like BAPI7004-PAYSLIP_VARIANT value 'ESS_PAYSLIPS' ,
P_LIST like ABAPLIST occurs 1 with header line,
P_IDX type I.
data: begin of P_INDEX occurs 0,
INDEX type I,
end of P_INDEX.
data: OBJBIN like SOLISTI1 occurs 10 with header line,
DOCDATA like SODOCCHGI1,
OBJTXT like SOLISTI1 occurs 10 with header line,
OBJPACK like SOPCKLSTI1 occurs 1 with header line,
RECLIST like SOMLRECI1 occurs 1 with header line,
OBJHEAD like SOLISTI1 occurs 1 with header line,
TAB_LINES type I,
ATT_TYPE like SOODK-OBJTP.
data: PDF_TAB like TBL1024 occurs 0 with header line,
OTF_TAB like TBL1024 occurs 0 with header line.
Spool IDs
TYPES: BEGIN OF t_tbtcp.
INCLUDE STRUCTURE tbtcp.
TYPES: END OF t_tbtcp.
DATA: it_tbtcp TYPE STANDARD TABLE OF t_tbtcp INITIAL SIZE 0,
wa_tbtcp TYPE t_tbtcp.
Job Runtime Parameters
DATA: gd_eventid LIKE tbtcm-eventid,
gd_eventparm LIKE tbtcm-eventparm,
gd_external_program_active LIKE tbtcm-xpgactive,
gd_jobcount LIKE tbtcm-jobcount,
gd_jobname LIKE tbtcm-jobname,
gd_stepcount LIKE tbtcm-stepcount,
gd_error TYPE sy-subrc,
gd_reciever TYPE sy-subrc.
Spool to PDF conversions
DATA: gd_spool_nr LIKE tsp01-rqident,
gd_destination LIKE rlgrap-filename,
gd_bytecount LIKE tst01-dsize,
gd_buffer TYPE string.
Binary store for PDF
DATA: BEGIN OF it_pdf_output OCCURS 0.
INCLUDE STRUCTURE tline.
DATA: END OF it_pdf_output.
DATA: w_recsize TYPE i.
DATA: gd_subject LIKE sodocchgi1-obj_descr,
it_mess_bod LIKE solisti1 OCCURS 0 WITH HEADER LINE,
it_mess_att LIKE solisti1 OCCURS 0 WITH HEADER LINE,
gd_sender_type LIKE soextreci1-adr_typ,
gd_attachment_desc TYPE so_obj_nam,
gd_attachment_name TYPE so_obj_des.
data: PDF_CONTENT TYPE XSTRING,
PDF_FSIZE TYPE I.
data: error TYPE sysubrc.
DATA: v_dest LIKE tsp01-rqdest,
v_handle LIKE sy-tabix,
v_spool_id LIKE tsp01-rqident,
v_rc TYPE c,
v_errmessage(100) TYPE c,
v_text(70) TYPE c.
data: PAYSLIP LIKE BAPI7004_PAYSLIP occurs 0 with header line.
Data: v_index like sy-index value 1.
Data: Begin of I_Sent occurs 0,
pernr like pernr-pernr,
name(20),
usrid_long like pa0105-usrid_long,
Status(3),
End of I_sent.
Data: Begin of I_NSent occurs 0,
pernr like pernr-pernr,
usrid_long like pa0105-usrid_long,
End of I_Nsent.
DATA: I_FCODE TYPE TABLE OF sy-ucomm.
data: v_text1(255),
v_text2(255),
v_text3(255).
data: month_names like T247 occurs 0 with header line,
v_month(2) type c.
***********************Selection Screen********************
selection-screen Begin of Block b2 WITH FRAME TITLE TEXT-BL1 .
Parameters: P_Print type c default 'X' radiobutton group g1
user-command CMD,
P_DISP Type C Radiobutton Group g1.
Selection-screen end of Block b2.
selection-screen Begin of Block b1 WITH FRAME TITLE TEXT-BL2 .
Recipient address and Period
SELECT-OPTIONS : s_name FOR PERNR-PERNR Modif id M1,
s_period for HRPY_RGDIR-FPPER Modif id M1.
s_year for QPPNP-PABRJ Modif id M1.
SELECT-OPTIONS: p_num FOR PERNR-PERNR Modif id M2 .
Selection-screen end of Block b1.
*SELECTION-SCREEN FUNCTION KEY 1.
*SELECTION-SCREEN PUSHBUTTON /10(20) CHARLY USER-COMMAND ABCD.
***********************At Selection Screen Output**************
at selection-screen output.
Loop at screen.
if P_Print = 'X'.
if screen-group1 = 'M2'.
screen-active = 0.
endif.
else.
if screen-group1 = 'M1'.
if screen-name = 'S_NAME-LOW' Or screen-name = 'S_PERIOD'.
screen-active = 1.
endif.
Endif.
Modify Screen.
Endloop.
***********************INITIALIZATION********************
INITIALIZATION.
MOVE 'Preview' TO SSCRFIELDS-FUNCTXT_01.
MOVE 'Preview' TO CHARLY.
p_print = 'X'.
v_text1 =
'Please find enclosed your salary slip for the month of Apr 2006 as
*attachment. This is confidential '.
***********************AT SELECTION-SCREEN******************
AT SELECTION-SCREEN.
if p_print = 'X'.
if s_name[] is initial.
message e000(8i) with 'Make Entry into Personal Number Field'.
endif.
else.
if p_num[] is initial.
message e000(8i) with 'Make Entry into Personal Number Field'.
endif.
endif.
***********************Start-of-Selection********************
Start-of-Selection.
if p_print = 'X'.
APPEND 'NEXT' TO i_fcode.
APPEND 'PREV' TO i_fcode.
set pf-status 'ZHRF' excluding I_FCODE.
Perform Get_values.
Perform Print using v_index.
perform Write_Values.
else.
set pf-status 'ZHRF'.
Perform Get_values.
Perform Print using v_index.
endif.
***********************Top-of-page***************************
Top-of-page.
skip 2.
if p_print = 'X'.
write:50 'The Pay Slip Sent details'.
skip 1.
uline at 1(70).
write :/ sy-vline,2 'Personal Number',18 sy-vline,
19 'Name',40 sy-vline,
41 'User Mail-Ids',63 sy-vline,
64 'Status',70 sy-vline.
ULINE /1(70).
endif.
set left scroll-boundary Column 0.
*& Form Get_values
text
--> p1 text
<-- p2 text
FORM Get_values .
select *
from HRPY_RGDIR
into corresponding fields of table itab
where PERNR in s_name
AND
FPPER IN S_PERIOD.
if sy-subrc eq 0.
loop at itab.
Create receiver list
refresh RECLIST.
clear RECLIST.
select single *
from PA0105
where PERNR eq ITAB-PERNR
and USRTY eq '0010'.
if SY-SUBRC <> 0.
I_sent-PERNR = ITAB-PERNR.
i_sent-status = 'NO'.
select single *
from pa0002
where pernr eq itab-pernr.
concatenate pa0002-VORNA pa0002-NACHN into i_sent-name
separated by space.
append i_Nsent.
continue.
else.
refresh reclist.
RECLIST-RECEIVER = pa0105-usrid_long.
translate RECLIST-RECEIVER to lower case.
RECLIST-REC_TYPE = 'U'.
append RECLIST.
endif.
call function 'GET_PAYSLIP'
EXPORTING
EMPLOYEE_NUMBER = itab-PERNR
SEQUENCE_NUMBER = itab-SEQNR
PAYSLIP_VARIANT = PAY_VAR
IMPORTING
RETURN = RETURN
P_INFO = P_INFO
TABLES
P_FORM = P_FORM.
loop at P_FORM
where LINDA eq F__CMD-NEWPAGE
and LTYPE eq F__LTYPE-CMD.
P_INDEX-INDEX = SY-TABIX.
append P_INDEX.
endloop.
P_IDX = 1.
refresh P_P_FORM.
append lines of P_FORM from P_IDX to P_INDEX-INDEX
to P_P_FORM.
P_IDX = P_INDEX-INDEX.
export P_P_FORM to memory id '%%_P_FORM_%%'.
export P_INFO to memory id '%%_P_INFO_%%'.
submit RPCEDT_LIST_TO_MEMORY exporting list to memory and return.
call function 'LIST_FROM_MEMORY'
TABLES
LISTOBJECT = P_LIST.
call function 'TABLE_COMPRESS'
TABLES
IN = P_LIST
OUT = OBJBIN
EXCEPTIONS
others = 1.
Read table RECLIST index 1.
I_sent-PERNR = ITAB-PERNR.
i_sent-usrid_long = RECLIST-RECEIVER.
select single *
from pa0002
where pernr eq itab-pernr.
concatenate pa0002-VORNA pa0002-NACHN into i_sent-name
separated by space.
i_sent-status = 'YES'.
append i_sent.
concatenate ' Payslip-' '(' ITAB-PERNR+4(4) ')'
into DOCDATA-OBJ_DESCR.
CALL FUNCTION 'MONTH_NAMES_GET'
EXPORTING
LANGUAGE = SY-LANGU
TABLES
MONTH_NAMES = month_names
EXCEPTIONS
MONTH_NAMES_NOT_FOUND = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
if sy-datum+4(2) = '01'.
v_month = '12'.
else.
v_month = sy-datum+4(2) - 1.
endif.
read table month_names with key mnr = v_month.
concatenate 'Salary Slip for the month of' month_names-LTX
sy-datum+0(4) '-' i_sent-name
into DOCDATA-OBJ_DESCR.
DOCDATA-OBJ_NAME = 'Pay Slip'.
DOCDATA-OBJ_LANGU = SY-LANGU.
OBJTXT = 'Dear Mr.'.
concatenate OBJTXT i_sent-name into objtxt.
append OBJTXT.
append initial line to objtxt.
OBJTXT = 'Please find enclosed your salary slip for the month of'.
concatenate OBJTXT month_names-LTX sy-datum+0(4)
into objtxt separated by space.
append OBJTXT.
OBJTXT =
'as attachment This is confidential document and not be disclosed'.
append OBJTXT.
OBJTXT =
'shared with any other employee.In case of any queries on this subject'.
append OBJTXT.
OBJTXT =
'you are requested to contact the Payroll administrator Sabitha '.
OBJTXT = 'email:[email protected]'.
append OBJTXT.
append initial line to objtxt.
append initial line to objtxt.
OBJTXT = 'With Kind Regards'.
append OBJTXT.
append initial line to objtxt.
append initial line to objtxt.
OBJTXT = 'Sabitha'.
append OBJTXT.
OBJTXT = 'Payroll Administrator'.
append OBJTXT.
OBJTXT = 'Enteg Infotech Pvt Lyd.'.
append OBJTXT.
OBJTXT = 'Banaglore'.
append OBJTXT.
Write Packing List (Main)
describe table objtxt.
read table OBJTXT index sy-tfill.
DOCDATA-DOC_SIZE = ( sy-tfill - 1 ) * 255 + strlen( OBJTXT ).
clear OBJPACK-TRANSF_BIN.
OBJPACK-HEAD_START = 1.
OBJPACK-HEAD_NUM = 0.
OBJPACK-BODY_START = 1.
OBJPACK-BODY_NUM = sy-tfill.
OBJPACK-DOC_TYPE = 'TXT'.
append OBJPACK.
Create Message Attachment
Write Packing List (Attachment)
ATT_TYPE = 'ALI'.
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 = 'Payslip'.
append OBJPACK.
Send the document
call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA = DOCDATA
PUT_IN_OUTBOX = ''
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
DOCUMENT_TYPE_NOT_EXIST = 3
OPERATION_NO_AUTHORIZATION = 4
PARAMETER_ERROR = 5
X_ERROR = 6
ENQUEUE_ERROR = 7
others = 8.
endloop.
endif.
ENDFORM. " Get_values
*****************************At User Command*************************
at User-Command.
case Sy-ucomm.
When 'NEXT'.
describe table itab.
if sy-tfill GT v_index.
v_index = v_index + 1.
Perform Print using v_index.
else.
message E000(8i) with 'You Have Reached the Last Entry'.
endif.
When 'PREV'.
if v_index LE 1.
Message E000(8i) with 'You Have Reached the First Entry'.
else.
v_index = v_index - 1.
Perform Print using v_index.
endif.
When 'BACK'.
leave to screen 0.
WHen 'EXIT'.
set Screen 0.
leave screen.
Endcase.
*& Form Print
text
--> p1 text
<-- p2 text
FORM Print using v_index.
if v_index = 1.
select *
from HRPY_RGDIR
into corresponding fields of table itab
where PERNR in P_num
endif.
if not itab[] is initial.
sort itab by pernr .
read table itab index v_index.
select single *
from PA0105
where PERNR eq ITAB-PERNR
and USRTY eq '0010'.
call function 'GET_PAYSLIP'
EXPORTING
EMPLOYEE_NUMBER = itab-PERNR
SEQUENCE_NUMBER = itab-SEQNR
PAYSLIP_VARIANT = PAY_VAR
IMPORTING
RETURN = RETURN
P_INFO = P_INFO
TABLES
P_FORM = P_FORM.
loop at P_FORM
where LINDA eq F__CMD-NEWPAGE
and LTYPE eq F__LTYPE-CMD.
P_INDEX-INDEX = SY-TABIX.
append P_INDEX.
endloop.
P_IDX = 1.
refresh P_P_FORM.
append lines of P_FORM from P_IDX to P_INDEX-INDEX
to P_P_FORM.
P_IDX = P_INDEX-INDEX.
export P_P_FORM to memory id '%%_P_FORM_%%'.
export P_INFO to memory id '%%_P_INFO_%%'.
IMPORT P_P_FORM FROM MEMORY ID '%%_P_FORM_%%'.
IMPORT P_INFO FROM MEMORY ID '%%_P_INFO_%%'.
new-page "VKIK008647
line-size p_info-pcols
line-count p_info-psize
no-title
no-heading.
SET BLANK LINES ON.
LOOP AT P_P_FORM.
if sy-tabix lt 20.
NEW-LINE NO-SCROLLING.
endif.
CASE P_P_FORM-LTYPE.
WHEN F__LTYPE-TXT.
WRITE:/ P_P_FORM-LINDA.
WHEN F__LTYPE-CMD.
IF P_P_FORM-LINDA EQ F__CMD-NEWPAGE.
NEW-PAGE.
ENDIF.
WHEN others.
hide: itab,v_index.
WRITE:/ P_P_FORM-LINDA.
if sy-tabix lt 20.
NEW-LINE NO-SCROLLING.
else.
NEW-LINE SCROLLING.
endif.
ENDCASE.
ENDLOOP.
SET BLANK LINES OFF.
v_index = 1.
endif.
ENDFORM. " Print
*& Form Write_Values
text
--> p1 text
<-- p2 text
FORM Write_Values .
if p_print = 'X'.
loop at i_sent.
write :/ sy-vline,2 i_sent-pernr,18 sy-vline,
19 i_sent-name,40 sy-vline,
41 i_sent-usrid_long,63 sy-vline,
64 i_sent-status,70 sy-vline.
ULINE /1(70).
endloop.
endif.
ENDFORM. " Write_Values
i want to send the contents of objtxt has body.
cheersHi,
in the below code, BOLD Characters coming as body text in my mail.after that i am attaching V_LINE as the attachment.pl compare this with ur code.
revert, if you need any clarifications.
<b>*-populate body text</b>
CONCATENATE <b>'Japan BOL details for the Delivery#'
V_VBELN
',is attached'</b> INTO WA_OBJTXT SEPARATED BY SPACE.
APPEND WA_OBJTXT TO IT_OBJTXT.
<b>*---- Append Date and Time into Body of email.</b>
MOVE 'File is generated on'(004) TO V_INFO.
V_TIME = SY-UZEIT.
WRITE : SY-UZEIT TO V_TIME USING EDIT MASK '__:__:__'.
CONCATENATE V_TIME+0(2)
V_TIME+2(2)
V_TIME+4(2)
INTO
V_TIME2 SEPARATED BY ':'.
WRITE : sy-datum MM/DD/YYYY TO lv_date .
CONCATENATE SY-DATUM+4(2)
SY-DATUM+6(2)
SY-DATUM+0(4)
INTO V_DATE.
CONCATENATE <b>V_INFO
V_DATE
'At'
V_TIME2
INTO V_INFO</b> SEPARATED BY SPACE.
<b>WA_OBJTXT = V_INFO.</b> APPEND WA_OBJTXT TO IT_OBJTXT.
*-document size
CLEAR : V_TABLE_LINES.
DESCRIBE TABLE IT_OBJTXT LINES V_TABLE_LINES.
READ TABLE IT_OBJTXT INTO WA_OBJTXT INDEX V_TABLE_LINES.
X_DOC_CHNG-DOC_SIZE =
( V_TABLE_LINES - 1 ) * 255 + STRLEN( WA_OBJTXT ).
*-populate packing list for body text
CLEAR IT_OBJPACK-TRANSF_BIN.
WA_OBJPACK-HEAD_START = 1.
WA_OBJPACK-HEAD_NUM = 0.
WA_OBJPACK-BODY_START = 1.
WA_OBJPACK-BODY_NUM = V_TABLE_LINES.
WA_OBJPACK-DOC_TYPE = 'RAW'.
APPEND WA_OBJPACK TO IT_OBJPACK.
CLEAR WA_OBJPACK.
*--for attachment
*--add Internal table lines here, as attachment.
WA_OBJBIN = V_LINE.
APPEND WA_OBJBIN TO IT_OBJBIN.
CLEAR WA_OBJBIN.
*-get total no.of lines of Object table(attachment)
CLEAR : V_TABLE_LINES.
DESCRIBE TABLE IT_OBJBIN LINES V_TABLE_LINES.
*-populate object header
CONCATENATE 'Delivery#'(005)
V_VBELN
SY-DATUM
V_TIME
INTO
WA_OBJHEAD SEPARATED BY SPACE.
APPEND WA_OBJHEAD TO IT_OBJHEAD.
CLEAR WA_OBJHEAD.
*-packing list for attachment
WA_OBJPACK-TRANSF_BIN = C_X.
WA_OBJPACK-HEAD_START = 1.
WA_OBJPACK-HEAD_NUM = 1.
WA_OBJPACK-BODY_START = 1.
WA_OBJPACK-BODY_NUM = V_TABLE_LINES .
WA_OBJPACK-DOC_TYPE = 'CSV' .
WA_OBJPACK-DOC_TYPE = 'RAW' .
WA_OBJPACK-OBJ_NAME = 'POTR'.
CONCATENATE 'Delivery details for '(005)
CONCATENATE TEXT-005
V_VBELN
SY-DATUM
V_TIME
'.CSV'
INTO
WA_OBJPACK-OBJ_DESCR SEPARATED BY SPACE.
BREAK-POINT.
WA_OBJPACK-DOC_SIZE = V_TABLE_LINES * 255.
APPEND WA_OBJPACK TO IT_OBJPACK.
CLEAR WA_OBJPACK. -
Receiving mail with questionnaire and upload to evaluate vendor
Hello,
I have a little problem using ROS. The auto-register is ok, the questionnaire is sent to vendor but we dont know exactly how to link the sending of the questionnaire by vendor with the upload to ROS system.
I mean, can someone send me a screen-capture of the SO50 transaction? Or tell me how you configure sapconnect or if you implement the exit CL_UWS_FORM_RUNTIME_MAIL to upload the questionnaire to ROS?
Regards,Hi,
Questionnaire is sent to SRM by email attachment. Inbound Processing program in SRM side gets the attachment and store information to SRM. You should configure incoming email setup and inbound processing configuration in SO50 transaction. SO50 entry is like this.
Internetmail [email protected] * CL_UWS_FORM_RUNTIME_MAIL 1
Create a user MAILADM in SU01 and assign email address.
Regards,
Masa -
Receiver mail with text file attached without line feeds
Hi, friends
I have a text file to mail scenario, where file must be attached to receiver mail.
Receiver CC mail is protocol XIPAYLOAD and use mail package and keep attachment.
In tab module, i have:
Module name --> SAP XI Sample/ConvertCRLFfromToLF
Module configuration --> mode LFtoCRLF
The plain text file is attached to mail but there are no line feeds after the plain text lines.
Thanks, in advanceStefan,
This is not a Java mapping, it's an ABAP mapping.
I've tryed also to insert this characters, but without success.
In my abap class i have:
data: l_newline type c value cl_abap_char_utilities=>newline.
data: l_linefeed type c value cl_abap_char_utilities=>CR_LF.
clear wa_string.
incode = idocument->get_elements_by_tag_name( 'linea' ).
length = incode->GET_LENGTH( ).
do length times.
outcode = incode->get_item( index = d_lines ).
wa_linea = outcode->get_value( ).
if wa_string is initial.
wa_string = wa_linea.
else.
concatenate wa_string l_newline l_linefeed crlf wa_linea into wa_string.
endif.
add 1 to d_lines.
enddo.
l_element_dummy = l_document->create_simple_element(
name = 'Content'
VALUE = wa_string
parent = l_element_root ).
so...it's similar to your suggestion..
Any other input, please?
Regards,
Carme. -
SEND EMAIL WITH PO AND ATTACHMENT FILES
Hi,
I'm working with MySAP Enterprise 4.7 and I want to send the PO and its attachment vía e-mail, currently only the PO is being sent to the Vendor and the attachment only appears like texts into the "body" of PO. Is there some way to send e-mail with the PO and attachments at the same time??
I attached the document via DMS at position level.
Thanks in advanced for your answer and help!!
Regards,
Blanca Reyeshi
Follow these steps
Basically there are two mail types: Internet mail (external mail) and
SAPOffice mail.
Mail is sent via the output determination in both cases.
If you use the external mail, the message for the purchasing document is
converted into a corresponding text file which is sent to the vendor via
the Internet.
SAPOffice mail is sent only within the R/3 System and has mainly the
function of providing information.
In particular, it is not possible to attach a message (form) for a
purchasing document to a SAPOffice mail.
When using external mail, the following basic settings are required:
1. You must maintain an e-mail address in the address in the vendor
master.
2. The same applies to your own user master. You also have to specify
an e-mail address there in order to identify the sender.
o Note that it is not possible to change the e-mail address of the endor
o You can use a temporary email address in Transaction ME21N.
3. For the output type for default values, a communication strategy
needs to be maintained in the Customizing that supports the e-mail.
You can find the definition of the communication strategy in the
Customizing via the following path: (SPRO -> IMG -> SAP Web
Application Server -> Basic Services -> Message Control -> Define
Communication Strategy). As a default, communication strategy CS01
is delivered. This already contains the necessary entry for the
external communication. Bear in mind that without a suitable
communication strategy it is not possible to communicate with a
partner via Medium 5 (external sending).
4. Use the standard SAP environment (program 'SAPFM06P', FORM routine
'ENTRY_NEU' and form 'MEDRUCK') as the processing routines.
5. In the condition records for the output type (for example,
Transaction MN04), use medium '5' (External send).
6. You can use Transaction SCOT to trigger the output manually. The
prerequisite for a correct sending is that the node is set
correctly. This is not described here, but it must have already been
carried out.
7. To be able to display, for example, the e-mail in Outlook, enter PDF
as the format in the node.
To use the SAPOffice mail, the following basic settings are required:
1. For the output type for default values, a communication strategy
needs to be maintained in the Customizing that supports the e-mail.
You can branch to the maintenance of the communication strategy via
the input help.
2. Use the SAP standard environment (program "RSNASTSO" and FORM
routine "SAPOFFICE_AUFRUF") as the processing routines.
3. In the condition records for the output type (for example,
Transaction MN04), use medium '7' (SAPOffice) and also partner role
'MP' (mail partner).
Additional settings:
Problem:
How can you both change the mail title and text for the sending of a
mail message and maintain a replacement parameter, for example a
document number.
Solution:
1. The replacement routine is maintained in the Customizing for the
output type in the detail screen on the 'General data' tab under
'Replacement of text symbols' (for Release < 4.6B, this can be found
on the 'Mail' tab page).
Program: SAPMM06E
FORM routine: TEXT_SYMBOL_REPLACE
2. Maintain mail title and text.
o If you want to send a purchase order within an R/3 system using
the SAP office, you can maintain both the mail title ('Re:') and
also a mail text in the Customizing for the output type To do
this, select the directory mail title and text for the
corresponding message type.
o If you want to send a purchase order as (external) mail, for
example, to a vendor, you have to maintain the mail title in the
condition record for the output type (for example in Transaction
MN05) on the 'Communication method' tab page. Enter the mail
title in the 'Text for cover page' field. You cannot maintain an
additional mail text.
o Note that the values from the mail title are used to create the
description for the attachment.
3. The replacement parameters must be enclosed by &. Example: You want
to enter the title 'PO number '. For this you have to enter
the following in the Document Title field (Message Customizing ->
sub-option: Mail title and texts) 'PO number &EKKO-EBELN&'
Reward points if helpful
regards
chetan -
Receiver Mail Adapter - Body and Attachment
Hello All,
Based on the document How to Use the Mail Adapter of the XI 3.0 J2EE Adapter Engine section 3.2.4 says that the payload of the message is sent as the body and an attachment when the Keep Attachments checkbox is configured. By default, the payload of the message is also sent as an attachment.
In testing this feature - if it is checked I get the attachment - if it is not checked I get the payload in the body of the email. I do not get both.
I am using an xslt mapping.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:ns0="urn:sap-com:document:sap:rfc:functions" xmlns:ns="http://sap.com/xi/XI/Mail/30">
<xsl:output method="xml" encoding="utf-8" indent="no" omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:apply-templates select="ORDERS02"/>
</xsl:template>
<xsl:template match="ORDERS02">
<ns:Mail>
<Subject>
<xsl:text>Sample Purchase Order: </xsl:text>
<xsl:value-of select="IDOC/E1EDK01/BELNR"/>
</Subject>
<From>
<xsl:text>mail@Com</xsl:text>
</From>
<To>
<xsl:text>mail@com</xsl:text>
</To>
<Content_Type>text/plain; charset="ISO-8859-1"</Content_Type>
<Content_Disposition>attachment; filename="order.dc"</Content_Disposition>
<Content>
<xsl:text> </xsl:text>
<xsl:value-of select="IDOC/E1EDK01/BELNR"/>
<xsl:text>A </xsl:text>
<xsl:text>ORD 238 </xsl:text>
<xsl:text>
</xsl:text>
<xsl:apply-templates select="IDOC/E1EDP01"/>
<xsl:text> </xsl:text>
</Content>
</ns:Mail>
</xsl:template>
<xsl:template match="IDOC/E1EDP01">
<xsl:value-of select="concat(' ',/ORDERS02/IDOC/E1EDK01/BELNR)"/>
<xsl:text>Z</xsl:text>
<xsl:value-of select="substring(concat(E1EDP19[QUALF=002]/IDTNR,' '),1,7)"/>
<xsl:value-of select="format-number(number(MENGE),'00000')"/>
<xsl:text> </xsl:text>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>Thank you so much for your patience. The mapping works if I do not use the extra content_type tags. Do I need to include the Mime-Version: 1.0....also, notice the
<Content_Type>multipart/mixed; boundary="b1"</Content_Type>
Versus
<Content>--b12 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit My Order --b1
Your example shows use of Content-Type - and the XSLT sample shows <Content_Type> Do you know what the correct format is to use?.
I changed my xsl per your instructions.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" encoding="utf-8" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:apply-templates select="ORDERS02"/>
</xsl:template>
<xsl:template match="ORDERS02">
<ns:Mail xmlns:ns="http://sap.com/xi/XI/Mail/30">
<Subject>
<xsl:text>Purchase Order: </xsl:text>
</Subject>
<From>
<xsl:text>mail@com</xsl:text>
</From>
<To>
<xsl:text>mail@com</xsl:text>
</To>
<Content_Type>
<xsl:text>multipart/mixed; boundary="b1"</xsl:text>
</Content_Type>
<Content><xsl:text>--b12
</xsl:text>
<xsl:text>
</xsl:text>
<xsl:text>Content-Type: text/plain; charset=us-ascii </xsl:text>
<xsl:text>
</xsl:text>
<xsl:text>Content-Transfer-Encoding: 7bit </xsl:text>
<xsl:text>
</xsl:text>
<xsl:text>My Order</xsl:text>
<xsl:text>
</xsl:text>
<xsl:text>--b1</xsl:text>
<xsl:text>
</xsl:text>
<xsl:text>Content-Type: text/plain; charset=us-ascii</xsl:text>
<xsl:text>
</xsl:text>
<xsl:text>Content-Transfer-Encoding: 7bit</xsl:text>
<xsl:text>
</xsl:text>
<xsl:text>Content-Disposition: attachment; filename="order.dc"</xsl:text>
<xsl:text>
</xsl:text>
<xsl:text> </xsl:text>
<xsl:value-of select="IDOC/E1EDK01/BELNR"/>
<xsl:text>A </xsl:text>
<xsl:text>ORD 238 </xsl:text>
<xsl:text>
</xsl:text>
<xsl:text> </xsl:text>
<xsl:value-of select="IDOC/E1EDK01/BELNR"/>
<xsl:text>B</xsl:text>
<xsl:text>The Wolf Organization </xsl:text>
<xsl:text>
</xsl:text>
<xsl:text> </xsl:text>
<xsl:value-of select="IDOC/E1EDK01/BELNR"/>
<xsl:text>C</xsl:text>
<xsl:text>PO Box 2044 </xsl:text>
<xsl:text>
</xsl:text>
<xsl:text> </xsl:text>
<xsl:text>D</xsl:text>
<xsl:text>York, PA 17404-2044 </xsl:text>
<xsl:text>
</xsl:text>
<xsl:text> </xsl:text>
<xsl:value-of select="IDOC/E1EDK01/BELNR"/>
<xsl:text>E</xsl:text>
<xsl:text>
</xsl:text>
<xsl:text> </xsl:text>
<xsl:value-of select="IDOC/E1EDK01/BELNR"/>
<xsl:text>F</xsl:text>
<xsl:text>
</xsl:text>
<xsl:text> </xsl:text>
<xsl:value-of select="IDOC/E1EDK01/BELNR"/>
<xsl:text>G</xsl:text>
<xsl:text>
</xsl:text>
<xsl:apply-templates select="IDOC/E1EDP01"/>
<xsl:text> </xsl:text>
</Content>
<xsl:text>--b1--</xsl:text>
</ns:Mail>
</xsl:template>
<xsl:template match="IDOC/E1EDP01">
<xsl:text>Z</xsl:text>
<xsl:text> </xsl:text>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
Now my results look like this:
- <ns:Mail xmlns:ns="http://sap.com/xi/XI/Mail/30">
<Subject>Purchase Order:</Subject>
<From>mail@com</From>
<To>mail@com</To>
<Content_Type>multipart/mixed; boundary="b1"</Content_Type>
<Content>--b12 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit My Order --b1 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="order.dc" 4500000185A ORD 238 4500000185BThe Wolf Organization 4500000185CPO Box 2044 DYork, PA 17404-2044 4500000185E 4500000185F 4500000185G Z Z</Content>
--b1--
</ns:Mail>
And the error is still:
Following error occurred while executing the application:
java.lang.IllegalArgumentException: can't parse argument number http://sap.com/xi/XI/Mail/30
Display Stack Trace
Stack trace for the above error message is:
java.lang.IllegalArgumentException: can't parse argument number http://sap.com/xi/XI/Mail/30
at java.text.MessageFormat.makeFormat(MessageFormat.java:1323)
at java.text.MessageFormat.applyPattern(MessageFormat.java:447)
at java.text.MessageFormat.(MessageFormat.java:347)
at java.text.MessageFormat.format(MessageFormat.java:800)
at jsp_auditlog1160053386093._jspService(jsp_auditlog1160053386093.java:274)
at com.sap.engine.services.servlets_jsp.server.jsp.JspBase.service(JspBase.java:112)
at com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.service(JSPServlet.java:544)
at com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.service(JSPServlet.java:186)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.doWork(RequestDispatcherImpl.java:316)
at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:372)
at com.sapportals.htmlb.page.PageProcessorServlet.handleRequest(PageProcessorServlet.java:68)
at com.sapportals.htmlb.page.PageProcessorServlet.doGet(PageProcessorServlet.java:29)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170) -
HTTPS Receiver Adapter with POST and query String
Hi there,
we are currently running a http connection with an external partner. We use the plain http adapter to send documents.
Now we want to secure the whole thing and switch to https.
Currently we solely use the comm. channel in the directory. In the URL we include the required query string (http:/xxx/yyy<b>?msgtype=order</b>)
As I understand, the only way to use httpS is to use a RFC Dest. Type G in sm59.
But I am not able to add a query to the url there.
I guess that it is not an option to ask our partner to search the posted document for parameters. We were already happy that they were able to do it like we have it.
Does anyone has an idea how we could include a query in the url or give somehow the partner explicitly the info about the message type we send?
Thanks in advance,
HelgeHi Helge,
as far as I know this should be possible with SP16 by using the settings in the adapter configuration.
We had this requirement, but with SP15 it isn´t possible.
Have a look on the documentation
http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
Chapter Adapter-Specific Message Attributes
There you can use up to 6 URL Parameters. I never used it, if you have SP16, try it.
Regards
Thomas -
See above
I disabled roaming on my wireless pc card and VZW Access Manager showed the network as Verizon and after 10 minutes use got a phone text msg and a email saying my international roaming charges are exceeding $50.00, and I have never had the card or laptop across the border. Calling customer service got transferred to tech support and the tech wanted to add a global plan for $25 then she said she would cancel it at the end of the billing cycle and would credit my account the remaining balance owed, how stupid do they think we are, she wouldn't transfer me back to the customer service rep or to a 2nd tier tech, just trying to weasel me into something I told her I wouldn't agree to even if it was in writing and I know how Verizon works with verbal explanations of plans, been taken that way too. I've told the reps many times that the next time a Verizon employee tries to pull a fast one they will lose a customer that has never been with another provider. It appears that Verizon's towers near the border recognize users that aren't regular users in that area and try to charge ridiculously high data rates, $50.00 for 10 minutes, then the tech tries to get you to agree to something that will get them a commission, why else would they delay crediting you the amount, which most likely is not going to actually happen anyway, and it's not in writing so not able to prove it. Well Verizon isn't getting 1 cent of that charge and depending on how they handle this they may lose a customer and have to send some poor unsuspecting employee to respond to the small claims court or just plain default. One more call to customer service is it, sorry, done playing their game by their rules.
-
How to send mail with cc and attachment
please provide code for sending a file with attchment in cc also
HI Rajesh,
There is a standard structure for Receiver Mail adopter which we can get from SAP market Place but it is not provided with CC if u want to use CC then you have to go with Dynamic Configuration.
DynamicConfiguration configuration = (DynamicConfiguration) container.getTransformationParameters().getStreamTransformationConstants.DYNAMIC_CONFIGURATION);
/*any other required fields*/
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/Mail", "THeaderCC");
configuration.put(key, "ccemail @ test.com");
Regards
Praveen Reddy
Edited by: Maareddy Praveen Reddy on Aug 10, 2011 12:17 PM -
Why am I only receiving audio with AirPlay and the NFL Ticket App?
Having trouble getting a picture via AirPlay with the DirecTV NFL Sunday Ticket App. I am sure there will be many disappointed NFL fans.
Not all apps are enabled for video airplay. It is up to each developer to do so. I suggest contacting them if you would like it addressed.
-
Sending emails with both body and attachment to multiple recipients
I have a requirement to send email with body and attachment to multiple recipients.
Body of the email is a standard text. It is a proxy-to-mail scenario.
Here is what I've done: (I'm using PI 7.11)
One mapping from Source to Target structure (format of the attachment text file)
Second mapping from Target Structure to Mail Package format.
In the second mapping I'm concatenating the output of first step into "Content" of the Mail Package.
"XIPAYLOAD" is the message protocol used.
The "Keep attachments" option in the Mail adapter allows only to send "Content" as attachment or as body of the email.
How to send an email with both content and text?
The other problem is even with using ASMA, I can't send email to multiple recipients. I can only do CC and TO for 1 person each - a total of 2. Although I can resolve this by creating mailing lists, it is better if this can be addressed in PI.
Thanks for any input you can provide!
Edited by: crazylad on Jan 18, 2012 3:39 PMThank you for your response Mikael.
For the first question, I was able to find the solution in the following blog:
XI Mail Adapter : Dynamically building attachment and message body content using a simple UDF
(I just needed to search with the right set of key words )
The key is to set the "Content Encoding" as "None" in the mail adapter. If this is not done, the mail will be sent with an attachment - untitled.bin containing both the mail body and the attachment text. Also, don't forget to check the "Keep Attachments" checkbox in the mail adapter.
Multiple recipients could be added by separating the email IDs with a Comma. I have used ASMA to set the recipients. -
Hi, I have and iPhone 4s running ios 8.0.2. I live in the middle east and would like to make and receive phone calls to people living in USA and Canada from my iphone. I have a Google account with an American number registered in it, but unfortunately it seems that I can only send messages and voice mail with my google voice account to USA and Canada because I live in the Middle East. I asked a similar question on another website and one person said that I could get what I want by using a VoIP/PBX account from pxbes.com and use this account with an application called "Acrobits softphone" from the App Store. Also he said that that I can use google chat to get my calls into the PBX account but he didn't say how and i don't know how. Does anyone know how this thing works or any other way to make and receive calls with America and Canada by using my google voice account. I don't care if it costs money as long as people can get in touch with me by using my American phone number.
I have exactly the same concern. It seems it would be a simple fix for Apple to allow users to turn off the camera (and even the mic) while keeping FaceTime open -- especially now that it turns out FaceTime must remain open in order to send and receive iPhone calls on a Mac.
I like to think this new functionality of FaceTime will be baked into a future release of Yosemite, as the current setup has that not-quite-finished feel of a work in progress. In the meantime, there's nothing like a little piece of Post-It stuck over the camera to keep the NSA from watching your face as you type a post to the Apple Support Communities. -
TS3276 receive email with .dat attachments
I have begun receiving emails with .dat files attached from my coworkers who use Outlook. Somehow, these files replace the attached files that my coworkers intended to send and Mail doesn't seem to be able to open/process them. I would really appreciate any advice on how to overcome this as I am starting to be pressured to give up my Mac.
.DAT files is a file has arbitrary data and is not associated with any one particular program or application. When you see a file with a .XLS extension, you know it’s referring to an Excel file, and so on. But with .DAT files, you have to figure out how to open it yourself and it may not be the same program each time.
The best way to open a .DAT file is to use the program that created it. You may want to ask the sender to send it in a different format, like .pdf.
Winmail.dat files come from those Microsoft Outlook or Exchange programs and are some sort of archive method. Somewhere in outlook they get automatically created when forwarding email messages and Mac users have long wondered what they are and how to open them. Of course Windows users have no idea what they are either and think it’s all the receivers issue when we say we never got an attachment.
You could also try this software - http://www.joshjacob.com/mac-development/tnef.php -
Receive mail with PDF attachment into XI and send to ABAP proxy
Hi,
I have a scenario where I need to receive a mail into XI that has a PDF attachment. This attachment needs to be retained as ultimately I need to send the message into CRM via an ABAP proxy and read the attachment and load against a business partner.
However, as I am only on SP13 I do not have the parameters such "Keep Attachments" available to use.
So I have two questions:
1. How do I receive the mail into XI with the PDF attachment ?
2. How do I read the attachment in an ABAP proxy ?
Any guidance in either question would be appreciated.
Cheers
Colin.hi,
you say that there's no keep attachment
indicator but does the XI store the attachment or not?
maybe it stores all attachmens
(I work with sp16 and I don't remember how it worked with sp13)
but try maybe it accepts attachments by default
then it would be quite easy
if you use then use the attachement in abap proxy
(like I said you won't have to use any java)
Regards,
michal
<a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>
Maybe you are looking for
-
Can anybody give me a helping hand? I miss an Editor - or at least a Librarian: I still use my Roland D50 - not only as an input device, but also the sounds, of which I have a lot. In "ye old days" I used an Editor/Librarian with system 6. Nice, sinc
-
Hey guys. I'm trying to encrypt a 2TB RAID 5. I run the command: cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/md0 After I've entered and confirmed my password, it seems to go for a few moments, and then the whole computer locks up. It cannot
-
My friend has an I phone & received word that she should install iOS6. When I tried to do this, the line that says "download & install" isn't lit up & therefore, I am unable to do this. Any ideas? My phone was purchased about 3 weeks ago.
-
How do I reload the plug-In program?
I accidently clicked on never instead of always and now I can no longer view you Tube. I want to reload of do what ever it takes to reset the plug ins.
-
Can't connect remotely after updating to Snow Leopard
Hi, I've been connecting remotely (using SFTP) to my office computer with Fetch fine, My co-worker just updated the system software from OS 10.5 to OS 10.6, and now I cannot connect to the computer...any suggestions of what I should do? The only thin