Sender SMTP Adapter / Content Based Routing / Mapping of an attachement

Hi all,
I'm still working on my SMTP --> PI --> Proxy scenario (asynchronous). I've tried several different properties of my sender communication channel (type = mail), but I didn't find the correct configuration. Hopefully it exists.
I'm working with PI 7.0 SP10.
I get an inbound message via Mail using sender SOAP Adapter. The message payload itself is an attachement. Now I'd like to do the following:
a) Content Based Routing in Receiver Determination based on the message subject
b) Mapping of the Attachement XML message to my inbound proxy interface
Now, trying to do so, I didn't get it work. When I use XIPAYLOAD with keep attachements, I get two attachements in my inbound message (one in XI mail package format having the subject within, one with the IDoc structure I'd like to map). How can I assign the second attachement to be used for my message mapping?
When I use XIALL instead of XIPAYLOAD, I think the mapping will work but my subject for content based routing will be lost, right? That one I didn't get running because of another failure, so I don't know the exact behaviour of the adapter for that configuration.
Anybody out there who know the correct configuration for the sender mail adapter for my small scenario above?
BR
Holger

Hi Stefan,
sorry for misunderstanding, for sure I'm using the mail adapter, not the SOAP Adapter. I'm actually on the same direction. I'm using XIPAYLOAD as message protocoll (having the attachement as the content for the mapping --> correct). Furthermore I've also found the predefined context objects for the content based routing receiver determination.
What I missed was setting the following properties in the communication channel:
To store adapter attributes in the message header of the XI message, set the Set Adapter-Specific Message Attributes indicator.
The following attributes are added to the XI message header if the sender makes them available, and if the Variable Transport Binding indicator is set.
Now it's working
BR
Holger

Similar Messages

  • Content based Routing?

    Hi Forum,
    I've looked through the messages regarding content based routing or similar's but the answers did not satisfy my needs. I have an XSLT mapping from a flat file structure to an IDOC. To qualify the receiving system I have to do a database lookup in my XSLT mapping by a Java extension function with combining some of the inputfields. The result of this database lookup is the Receiver System. How can I use this result in the condition Editor for the receiver determination. I can only use here the Nodes from the inputmessage. Are there other ways to have access to a "global Container" where I can store the results from the databaselookup to use them here?
    Thanks for you patience
    Manfred Schmidt-Voigt

    Hi,
    If the outbound adapter is a j2ee adapter, you can write a module which performs the lookup in a database or what ever. Then alter the message and add the information looked up.
    The easy way would be to add an extra attribute on the root node and add the content of the lookup in this field.
    I whould though prefere to use add the information to my root node.
    If you are not that keen on adapter development, the send the message into a bpm where you perform a lookup. This could probably be performed useing one of SP13's lookup functions.  The BPM should only consist of a recieve and a send step. When sending the message you should be able to perform the routing.
    /daniel

  • Split messages while using content based routing

    Hi gurus,
    We are using content base routing by checking the value of field F1 in our scenario. If the value is V1, then route to system A; If the value is V2, then route to system B.
    There are two layer in the send message type: layer1 and layer2. Both layer1 and layer2 can occur many times.
    As you know,  The field maybe existed many times in the real messages. Sometimes with the value V1, sometimes with the value V2.
    If F1 is in the layer1, can we split into two messages by judging the value of F1?
    If F1 is in the layer2, can we split into two messages by judging the value of F1?
    Thanks in advance.

    Hi Grzegorz,
    Thanks for your reply.
    Actually my case is as follows:
    (send messge)
                   <DATA>
                        <F1>V1</F1>
                   </DATA>
                   <DATA>
                        <F1>V2</F1>
                   </DATA>
                   <DATA>
                        <F1>V1</F1>
                   </DATA>
    Then in system A, we should receive( suppose no mapping):
                   <DATA>
                        <F1>V1</F1>
                   </DATA>
                   <DATA>
                        <F1>V1</F1>
                   </DATA>
    While in system B, we should recieve:
                   <DATA>
                        <F1>V2</F1>
                   </DATA>
    If we only use content based routing, both A and B will receive all 3 DATA.
    Any ideas? Thanks in advance.

  • Content based routing and XML with multiple objects

    I have some structure:
    <contracts>
      <contract>
         <department>1</department>
      </contract>
      <contract>
         <department>1</department>
       </contract>
      <contract>
         <department>2</department>
       </contract>
    </contracts>
    I need to route contract to 2 system based on <department> value:
    contracts/department = 1 --> System1
    contracts/department = 2 --> System2
    Will XI split my XML (based on Content Routing rules in ID) into 2 structures (with departmet=1 and department=2 accordingly) ?
    Or I have to perform 1ToN mapping? I don't like it bacause it will be diffucult to monitor hundred of messages.

    Alternatively if you donot like 1:n mapping and BPM.
    Create two message mappings in the IR
    1.Source :<contracts>
    <contract>
    <department>1</department>
    </contract>
    <contract>
    <department>1</department>
    </contract>
    <contract>
    <department>2</department>
    </contract>
    </contracts>
    Target:
    <contracts>
    <contract>
    <department>1</department>
    </contract>
    <contract>
    <department>1</department>
    </contract>
    Basically mapping generates a target structure which has only department 1.
    2.Same like step1 but the mapping should generate the XML with department = 2.
    Once requires steps are done in the ID , do the content based routing in the reciever determination and give the appropraite message mapping in the interface determination.
    That should your problem and also you will like doing it as it does not involve any split level mapping..:)

  • Content based routing in PI 7.1?

    Hi Guys,
    For the normal content based routing in PI 7.1 in the receiver determination step once i select the conditin and in the condition editor to choose the filed, i dont see any interface under the xpath.
    I dont have any search help option in the xpath column
    any help or suggestions would be appreciated
    Thanks,
    Raj

    Hi Raj,
    Try the steps which I am giving below, although it's a workaround and don't know the exact reason why it is failing.
    1. Open your Outbound Message Interface (which you are using in your Receiver Determination) in IR, edit it and change the Interface pattern (which is there just below the category "Outbound") to "Stateless (XI30 - Compatible)" , save it activate it.
    2. Follow the same step for your Inbound Message Interface. Change the Interface Pattern from "Sateless" to "Stateless (XI30 - Compatible)" .
    3. Go to ID. Remove your Outbound and Inbound Message Interface from their respective Business Service/Comp and add it again.
    4. Create your your receiver determination again using the Outbound and Inbound MI you have changed.
    5. Open condition editor of your receiver determination.You should be able to see your Message Interface and can choose the XPath.
    Follow the above steps carefully. It took me an hour to find this workaround. Let me know if it works.
    Thanks
    Amit

  • Oracle ESB - Message routing support & content based routing

    Hi Friends,
    Can anyone please let me know how message routing and content based routing is happening in Oracle ESB.

    Check this...
    http://docs.oracle.com/cd/E23943_01/dev.1111/e15866/tasks.htm#i1116351
    And this...
    https://forums.oracle.com/forums/ann.jspa?annID=893

  • Content Based Routing in ESB

    Hi All ,
    I needed some help on the content based routing feature in ESB .
    I have an ESB Process in which Data is extracted from a Database(using Select operation) and I have a column X based on whose content I want to invoke the next set of target services . I had assumed having 3 different routing rules with the Filter expression based on the content of X will do the work .This works only when I have one record for a batch of records it doesnot work .
    Wanted to know how does it evaluate for a scenario where we have multiple records in a payload with the value of the column on which we are doing content based routing varrying across the payload ?
    Thanks in advance.

    Hi,
    As James stated esb is processing the incomming recordset as one message so it applies your xpath expression to that message as a whole. Anyway, in your case, if you want to process records from a database table one record at the time i would go for the db polling mechanism and change my database model to include a logical delete column (eg a column processed which contains a Y or a N). You can not split a multiple record message in esb itself into separate messages for each record.
    Kind Regards,
    Andre

  • Content based routing in receiver determination.

    hi,
            how to do content based routing in receiver determination based on value of  of a variable of target structure?
    Miten.

    ths is what you are looking for
    /people/shabarish.vijayakumar/blog/2006/06/07/customise-your-xpath-expressions-in-receiver-determination
    /people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers

  • Where do you perform Content based Routing?

    Where do you perform Content based Routing?
    Edited by: I AM NEW TO XI on Jan 8, 2009 5:11 PM

    Hello,
    Although jayson has answered, just to help you more, in the receiver determination in ID, you will see conditional routing, there if you click, you will see your source message structure, you can select a perticular field and set conditions and the corresponding reciever if those conditions are met.
    Hope this helps.
    Thanks
    -Kulwant
    Award score if useful

  • Content based Routing Vs Message based Routing

    Hi friends,
    Can u plz differentiale Content based Routing and Message based Routing?

    Hi,
    Content based routing is when the receiver is determined based upon some value in message i.e for a field 'a' receiver is A but if its 'b' receiver is B.this is determined at runtime.
    While message based is normal routing
    Regards,

  • Does OpenESB support "Content-based Routing"?

    Hi,
    support OpenESB the "Content-based-Routing"? e.g is there JXPath SE or Groovy SE or any service engine for this issue? if yes which is please?
    thanks in advance
    Younes

    There's an Apache Camel service engine, and Camel's rather neat when it comes to routing
    edit: groan :-( I just noticed the date on this post
    Edited by: georgemc on Jul 7, 2010 1:59 PM

  • Sender File Adapter - Content Conversion

    HI Friends,
    I got a scenario where I need to convert the File to XML document through Sender file adapter..
    My file looks like below.
    BATCH1234........
    12DASER123142JMM
    237DSAFDLKC839890
    45SDFLASJ90011
    BATCH3455...
    132FGAR
    SD21352525
    BATCH998898...
    123145DSRTW
    12FSTS
    So there is a Header and Body for each record set..
    My XML Structure is as follows.
    <TimeStructure>
      <TimeRecord>
         <ControlRec>
             <Field1>BATCH </Field1>   
             <Field2> ...</Field2>
         </ControlRec>
         <DataRec>
             <F1> ...... </F1>
             <F2> ...... </F2>
         </DataRec>
      </TimeRecord>
      <TimeRecord>
         <ControlRec>
             <Field1> BATCH  </Field1>   
             <Field2> ADFAS  </Field2>
         </ControlRec>
         <DataRec>
             <F1> ...... </F1>
             <F2> ...... </F2>
         </DataRec>
       </TimeRecord>
    </TimeStructure>
    The blog <a href="/people/shabarish.vijayakumar/blog/2006/02/27/content-conversion-the-key-field-problem:///people/shabarish.vijayakumar/blog/2006/02/27/content-conversion-the-key-field-problem
    is somewhat relevant to my requirement.
    But the problem is I have the keyfield "BATCH" for my header file but don't have any <b>key field in the data record</b> of the input file.
    Please help me out how to mention the configuration parameters.
    Regards,
    Kumar

    Hi,
    If you don't have constant key value for your detail records, then you can not directly get the required xml.
    So in this case, you can read all the records in a common Row model, i.e each record will be considered as a one row with all the values, and then split this row with Substring or java functions in the mapping.
    Even you can do this in the Adapter module .
    If you have key value for each record to identify then you can try with content conversion.
    Regards,
    Moorthy

  • Sending the message content to the server failed. Attachment.

    So I've been a Eudora user for more than a decade and just thought I'd try Mail and have been using it for about a month. This evening I was in the midst of writing messages and about halfway through, Mail would no longer send outgoing messages that contain attachments (I had sent messages earlier in the evening with attachements). I just get a response that says, "Sending the message content to the server failed." I have no problem sending messages that don't have an attachment.
    I have two separate email accounts that I use. For both I use my own domain as the smtp server which is hosted through aplushosting.com. It's smtp.riversandcreeks.com. Server port is set to 25 and authentication is set to none. Everything has worked fine until this evening (and it literally stopped halfway through my evening email session so I'm sure this is not related to a system upgrade or other software changes).
    I have spent about two hours trying all different settings. I tried changing authentication, screwed around with Network settings, and did just about anything I could think of (or read about trying after doing several searches on this board). I also trashed the Outbox in my Library and restarted the machine.
    In one of the posts where someone seemed to be having the same problem, I saw something about changing the MTU setting but I'm not familiar with what that means and there was not enough background to explain.
    My service provider is Comcast (just use them for the high speed connection but not the mail services) and I have one of their older RCA modems hooked into a wireless router that I access via airport.
    If anyone has suggestions (or can refer me to other posts on this forum I may have missed please let me know).
    Thanks!
    Tom
    G4   Mac OS X (10.4.6)  

    However, there are
    too many variables in your setup to yet be sure of
    the cause.
    Agreed. There are too many variables and they only seem to increase...
    You describe your modem as older, but you have not
    reported the make of router?
    It's a Microsoft router (my other half's employer). It has worked fine though for more than two years.
    Does it have ethernet
    ports, as well as wireless? If so, do you have a
    cable to test without wireless?
    Yes, tried all that.
    Have you tried powering down modem, router and Mac
    for a couple of minutes, and then powering back up,
    beginning with the modem, and then router?
    Yes, tried that too.
    MTU may be a factor, but the way things changed in
    mid sending, is a little odd, and it is not as
    frequently a factor with wireless. Later, I can give
    you a link that may help check MTU and wireless, but
    I need to research a bit on that.
    Do you have a Comcast address, and could you set up
    that Comcast account for a test?
    That would be another project but I suppose I could call Comcast and figure it out and it may provide some additional insight. However that will not solve the problem as I am highly mobile and am using different hot spots on a daily basis. I was down at the Apple Store and tried on their wireless network (so presumably eliminating all the variables with my home network and isp and on the most Mac-friendly network I can find). Same problem. Messages with attachments won't go out but all other messages will. I do get a slightly different error message there. It says "Verify that you have addressed this message correctly. Check your SMTP server settings in Mail Preferences and verify any advanced settings with your system administrator." I also have a ticket with my hosting service. They say they have not made any recent changes that would result in this problem. Will keep pursuing with them too to see if they have additional ideas.
    I'm really perplexed as to what would be distinguishing between mail with attachments vs. those without. As an additional test I fired up Eudora and I can send out attachments fine.

  • Sender Mail Adapter Content Conversion

    Hi All,
         I just want to know if we can send a flat file(Rather Than the XML) with content conversion using Mail Adapter. If yes then what are all the possible ways for this.
    I have tried but i am sucessful in sending the complete payload as a XML file, but i want the file with the content conversion, so that this should be able to picked by the third party systems.
    Will be oblidge if any supported blog or pdf is provided for the same.
    Thanks in Advance.
    Jay

    Hi,
    Now for the negative items, i want to send them back to business as flat file format
    using the mail adapter as attachment. This will help them to process the file as for there
    requirement.
    Since you need to send an email message you have to use the format mentioned here: (S-UserID required)
    https://websmp205.sap-ag.de/~sapidb/012006153200000361852004E/ximail30_xsd.txt
    Save this file as an XSD in you local system and upload it as an External Definition in your XI server.
    Develop MI based on this External Definition (IN, ASYNC)
    Create an Interface Mapping with Source as the file containing Negative items and target as the above developed MI
    Now you need to develop an XSLT mapping (can use StylusStudio to do it) between the source and target Message Types
    This XSLT mapping has to be designed in such a way that it extracts the payload out of the Negative Items message and maps it to the target (Content) field....you need to use CDATA element of XSLT here.
    In this mapping itself you can define to what email-id you want to send the message.....
    Everything happens on the XI --> Business service side...so it is not the sender channel but is the receiver channel:)
    Your XSLT mapping will look something like:
    <Mail>
         <Content>
              XSLT CODE
         </Content>
    </Mail>
    where Mail and Content are the tags in the email message format...the External definition one.....
    If you are new to XSLT then refer to my answer in this thread...
    Re: JAVA MAPPING
    regards,
    Abhishek.

  • Key field from content - Sender file adapter content conversion

    I am reading a source CSV file that has this structure. All rows in the source file are the same structure: line items of a PO. But there will be multiple POs in a single file, identified by the PO number as one column in the file.
    PONum,LineItemNum,Qty,Description
    001,1,34,Carrots
    001,2,17,Apples
    001,3,22,Bananas
    002,1,4,Mangos
    002,2,9,Coconuts
    003,1,44,Grapes
    Goal is to generate 3 messages, one for each PO:
    <po>
         <num>001</num>
         <line_items>
              ... 3 line items for PO # 001 ...
         </line_items>
    </po>
    <po>
         <num>002</num>
         <line_items>
              ... 2 line items for PO # 002 ...
         </line_items>
    </po>
    <po>
         <num>003</num>
         <line_items>
              ... 1 line item for PO # 003 ...
         </line_items>
    </po>
    Is there any way to use the Content Conversion Key Field Name to group the line items into the correct 3 messages? "Key Field Name" expects a static identifier for each type of row; but mine varies by the PO number in the content.
    Or do I need to do this in the mapping? If so, what is the easiest way to split 1 large message of all line items into multiple target messages based on the PO number? (I assume this is better than sending individual line item messages and aggregating them later, as long as the file size is OK.)
    Thanks in advance!
    RBL
    Edited by: Robert Burfoot-Lobo on Apr 8, 2009 11:43 AM

    Hi Robert,
    If ur goal is to split into 3 messages one for each PO, you can go for message split and using graphical mapping you can achieve that.
    Within the message mapping go to the tab Messages.
    Change the occurrence of the target message to 0..unbounded.
    Also this link may help you.
    /people/claus.wallacher/blog/2006/06/29/message-splitting-using-the-graphical-mapping-tool
    Regards,
    Madhu

Maybe you are looking for