cancel
Showing results for 
Search instead for 
Did you mean: 

attachement to mail to put in the body of the message

Former Member
0 Kudos

hello

I have RFC to MAIL scenario. I would like to know how can I configure the mail reciever adpater so the message that I recieve from the RFC will not sent as an attachement, but to put the message in the body of the mail reciever.

help will be appreciated

Thanks

Kfir

Accepted Solutions (0)

Answers (7)

Answers (7)

Former Member
0 Kudos

continue in a new and cleaner message

Former Member
0 Kudos

sorry for the last message.

here is an example of the xml file that I see in the sxmb_moni

<rfc:Y_SD_XI_FEED_BACK_1 xmlns:rfc="urn:sap-com:document:sap:rfc:functions">

<COUNTER_E>0</COUNTER_E>

<DATUM>2009-02-08</DATUM>

<DELIVERY>0187001010</DELIVERY>

<FILE_NAME/>

<FUNCNAME>Y_SD_XI_SHIPMENT_HANDLER_1</FUNCNAME>

<INV_DOC_NO/>

<MANDT>220</MANDT>

<PO_NUMBER/>

<SYSID>DEV</SYSID>

<TEXT>Success in Shipment INITIAL (delivery: 0187001010 )</TEXT>

<UZEIT>13:11:01</UZEIT>

<IT_RETURN>

<item>

<TYPE>S</TYPE>

<ID>VW</ID>

<NUMBER>487</NUMBER>

<MESSAGE>Processing shipment : Start</MESSAGE>

<LOG_NO/>

<LOG_MSG_NO>000000</LOG_MSG_NO>

<MESSAGE_V1/>

<MESSAGE_V2/>

<MESSAGE_V3/>

<MESSAGE_V4/>

<PARAMETER/>

<ROW>0</ROW>

<FIELD/>

<SYSTEM>DEV</SYSTEM>

</item>

<item>

<TYPE>S</TYPE>

<ID>VW</ID>

<NUMBER>511</NUMBER>

<MESSAGE>Processing shipment 0000003132 : Header data</MESSAGE>

<LOG_NO/>

<LOG_MSG_NO>000000</LOG_MSG_NO>

<MESSAGE_V1>0000003132</MESSAGE_V1>

<MESSAGE_V2/>

<MESSAGE_V3/>

<MESSAGE_V4/>

<PARAMETER/>

<ROW>0</ROW>

<FIELD/>

<SYSTEM>DEV</SYSTEM>

</item>

</IT_RETURN>

</rfc:Y_SD_XI_FEED_BACK_1>

Former Member
0 Kudos

if any one can help with writing the xsl for this file, it will be appreciated

<xsd:schema targetNamespace="urn:sap-com:document:sap:rfc:functions" xmlns="urn:sap-com:document:sap:rfc:functions" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:element name="Y_SD_XI_FEED_BACK_1">

<xsd:complexType>

<xsd:all>

<xsd:element name="COUNTER_E" type="xsd:integer" minOccurs="0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>

<xsd:element name="DATUM" type="date" minOccurs="0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>

<xsd:element name="DELIVERY" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="10"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="FILE_NAME" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="200"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="FUNCNAME" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="30"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="INV_DOC_NO" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="10"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="MANDT" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="3"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="PO_NUMBER" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="10"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="SYSID" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="8"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="TEXT" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="220"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="UZEIT" type="time" minOccurs="0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>

<xsd:element name="IT_RETURN">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="item" type="BAPIRET2" minOccurs="0" maxOccurs="unbounded" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:all>

</xsd:complexType>

</xsd:element>

<xsd:element name="Y_SD_XI_FEED_BACK_1.Response">

<xsd:complexType>

<xsd:all>

<xsd:element name="IT_RETURN">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="item" type="BAPIRET2" minOccurs="0" maxOccurs="unbounded" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:all>

</xsd:complexType>

</xsd:element>

<xsd:simpleType name="genericDate">

<xsd:restriction base="xsd:string">

<xsd:pattern value="....-..-.."/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="genericTime">

<xsd:restriction base="xsd:string">

<xsd:pattern value="..:..:.."/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType name="time">

<xsd:union memberTypes="xsd:time genericTime" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:sap-com:document:sap:rfc:functions"/>

</xsd:simpleType>

<xsd:simpleType name="date">

<xsd:union memberTypes="xsd:date genericDate" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:sap-com:document:sap:rfc:functions"/>

</xsd:simpleType>

<xsd:complexType name="BAPIRET2">

<xsd:sequence>

<xsd:element name="TYPE" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="1"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="ID" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="20"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="NUMBER" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="3"/>

<xsd:pattern value="\d+"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="MESSAGE" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="220"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="LOG_NO" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="20"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="LOG_MSG_NO" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="6"/>

<xsd:pattern value="\d+"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="MESSAGE_V1" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="50"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="MESSAGE_V2" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="50"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="MESSAGE_V3" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="50"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="MESSAGE_V4" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="50"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="PARAMETER" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="32"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="ROW" type="xsd:integer" minOccurs="0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>

<xsd:element name="FIELD" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="30"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="SYSTEM" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="10"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:schema>

Former Member
0 Kudos

since I am not that familiar with XSLT, and the xml file is very long (I gave you only a short brief where my problem is) I would like to know if there is any other option?

Kfir

Former Member
0 Kudos

thank you very much for the reply. it partially worked. the thing is that the RFC can have an array from 0-unbounded and I cannot establish a solution that catch every thing (I catch only the first one)/

in the example code(beloe) you can see that element item can appear from 0 - unbounded, and I am able to catch only the 1st item/

help is appreciated.

<xsd:element name="TEXT" minOccurs="0">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:maxLength value="220"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

<xsd:element name="UZEIT" type="time" minOccurs="0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>

<xsd:element name="IT_RETURN">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="item" type="BAPIRET2" minOccurs="0" maxOccurs="unbounded" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:all>

</xsd:complexType>

Thanks

Kfir

Former Member
0 Kudos

Then write some XSLT for conversions for doing so

Rajesh

prateek
Active Contributor
0 Kudos

Download the mail xsd first from

https://websmp205.sap-ag.de/~sapidb/012006153200000361852004E/ximail30_xsd.txt

This has to be imported under external definition in IR. Map the complete RFC source tag to the content field.

You should use the XIPayload protocol with Mail Package checkbox ticked in mail receiver communcation channel. Do not check the Keep Attachment checkbox in this case.

Regards,

Prateek

former_member187563
Contributor
0 Kudos

hi,

refer to this blog.

/people/prasad.ulagappan2/blog/2005/06/07/mail-adapter-scenarios-150-sap-exchange-infrastructure

regards,

ujjwal kumar