Different message structures on one communication channel

Hello,
we've got the situation where on on single communication channel, we will have multiple message structures. We need to discriminate between them and then handle them according to their structure.
All messages have a header section in which the message type is stored. So I've created a dummy structure:
<ns0:dummy>
  <header>
    <message_type></message_type>
  </header>
</ns0:dummy>
the actual messges will have a different root element, but you can ignore this by using xpath. So, I've created a sender agremeent with this dummy message as the interface. I have a interface determination with conditions:
/*/header/message_type = MT_A
and receiving interface MT_A. Same for MT_B and so forth. There's no interface mapping in between.
The receiving system now has a receiver agreement with MT_A as the interface. This all works. But in the receiver agreement you set up a communication channel where the message is sent to.
But at this point, MT_A was what the original system sended. All we did was figuring out what message type we're dealing with. Now we need to handle this message as MT_A and using a interface mapping, map it to MT_A_New. We cannot do this in the original receiver determination / interface determination combi, sinse this would mean a message mapping from dummy to something, and we need from MT_A -> MT_A_NEW.
Does anyone have thoughts on how to do this?
Thanx in advance!
Greetings, Walter.

Hello All,
thanks for all your input, it gave me quite a few possible directions to look.
we eventually solved our issue by creating a "generic" structure. It contains the header part (which is the same in structure A and B) and both the A body and B body as optional parts.
now we can make a mapping which only operates on the A part and ignores the B part and also one which does the B part.
<root>
  <header>
    <MT></MT>
  </header>
  <MT_A>
  </MT_A>
  <MT_B>
   </MT_B>
</root>
we can still define which mapping to use based on the header information. It all seems to work.
Thanks again for all your input!
Greetings, Walter.

Similar Messages

  • One Communication Channel for two XML-Structure

    Hi to all!
    i'm Newbee in XI.
    i register one Communication Channel to recieve two different XML-Structure and when i sent second structure there was a Mapping error, because XI waiting for first XML-Structure.
    I'd like to ask if there are any additional condition that i must tune up to make it possible or just it's impossible?

    Hi,
    Please refer below links
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/121b053d-0401-0010-539f-f9295efb7bad
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3a913f71-0601-0010-7a83-dfd3208a9a0b
    how to find the URL of deployed Web services?
    Creating .NET Web service
    http://www.15seconds.com/issue/010430.htm
    Also refer SOAP Framework to generate the common wsdl for both the messages with single SOAP CC
    http://help.sap.com/saphelp_nw04s/helpdata/en/bb/ddb33d2ae46b3be10000000a114084/frameset.htm
    Thanks
    swarup

  • Can one Communication Channel be used in more than one sender agreement?

    Can one Communication Channel be used in more than one sender agreement?

    It depends on your scenario...let me tell you a case where you can use one communication channel in more than one sender agreement...
    If you have an RFC sender channel this can be used in any number of sender agreements....
    Thanks,
    Renjith

  • Recordset structure in receiver communication channel

    Hi gurus!
    I have a problem with my receiver communication channel it says "Unknown structure 'Headers' found in document', probably configuration error in file adapter (XML parser error)'"
    It's for sure that the problem is in the configuration of the adapter.
    My scenario is from iDoc to File and i need to write only one header and many Lines, i made the data type like:
    Headers
    ---Header
    Lines
    ---Line
    And the problem is in the configurarion of the recordset structure and the lines below.
    If you know another way better to make the data type to acommplish what i've to do, just tell me I just made it that way because i thought it could work.
    If something is not clear just let me know, what i more need is the config. of the receiver adapter.
    Thanx in advance.
        Juan

    Hi Juan
    If i understand correctly .. you are doing FCC on your receiver communication channel...and the following is your Target Data type
    Headers
    ---Header
    Lines
    ---Line
    and FCC parameters you created are as below
    Recordset structure: Headers,Header,Lines,Line
    Header.fieldSeparator \r\n
    Header.endSeparator \r\n
    Line.fieldSeparator \r\n
    Line.endSeparator \r\n
      If the above data is correct, then I would like you try out the FCC parameters in my previous post. Because in the FCC parameters, you used only substructures(Header and Line) and you did not mention the lists ( Headers and Lines). That's why i think it is errored out.
    If my interpretation is wrong, please let me know where i went wrong, i will try to look at again.

  • Two selects in one communication channel?

    Hello everybody,
    is it possible to select two different DB-tables with ONE JDBC communication channel?
    Thanks a lot
    Regards Mario

    Isn't it possible to take the STATEMENT-Tag twice?
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:MT_MYMESSAGETYPE xmlns:ns0="http://xyz">
       <<b>Statement1</b>>
          <db_crm_transfer action="SQL_QUERY">
             <access>select * from <b>t1</b>, </access>
             <key>
                <object_key hasQuot="0">99</object_key>
             </key>
          </db_crm_transfer>
       </<b>Statement1</b>>
       <<b>Statement2</b>>
          <db_crm_transfer action="SQL_QUERY">
             <access>select * from <b>t2</b>, </access>
             <key>
                <object_key hasQuot="0">99</object_key>
             </key>
          </db_crm_transfer>
       </<b>Statement2</b>>
    </ns0:MT_...>
    Regards Mario

  • One communication channel with 2 cluster node functioning at the same time

    Hi Gurus,
    We have PI 7.1 installed in a HA environment, which includes  two servers.
    server A: ASCSSCSDBERSAAS
    server B: ERS + PAS
    and we can see a jdbc channel in the communication channel monitoring, and along with the CC there are two cluster ID available,both of which are showing green -- functioning.
    now the issue is the process is actually not started because there is no processing details, and  when we stop the CC and then start, nothing happens, but there are still 2 green nights, seems very strange.
    does any one have such experience and how can make these two nodes work well?
    Thanks.

    Probably they use an older version of alsa that doesn't have dmix enabled by default.
    Have a read through: http://gentoo-wiki.com/HOWTO_ALSA_Compl … ix%29#dmix
    Perhaps it will help.

  • How to re-use one SOAP Sender Channel for two different messages?

    Hi!
    I have an XI Proxy to SOAP Sync Scenario. 5 messages uses only 2 channels - cc_XI_Sender and cc_SOAP_Receiver. All messages comes from one Sender Channel and goes to one Receiver channel, and it works fine.
    When I make the same for SOAP to XI Proxy Sync Scenario, I've got a problem. For example I have 2 different messages (mi_so_MSG_ONE and mi_so_MSG_TWO), so it works, if I had a two different sender channels (cc_SOAP_R1 and cc_SOAP_R2).
    If I set the same Sender Channel in both Sender Agreements (cc_SOAP_R1), only one message (mi_so_MSG_ONE) goes without errors. When I send a second message (mi_so_MSG_TWO), in SXMB_MONI this message comes from Business System (BS_TEST) as message type one (mi_so_MSG_ONE), and then in stage of transformation in Interface Determination goes to message mapping program for other kind of messages (MM_MSG_ONE_to_XI_PROXY). And then - error in message mapping.
    I try many URLs for both messages:
    1) http://host:port/XISOAPAdapter/MessageServlet?channel=:BS_TEST:cc_SOAP_R1&version=3.0&Sender.Service=&Interface=
    2) http://host:port/XISOAPAdapter/MessageServlet?channel=:BS_TEST:cc_SOAP_R1&version=3.0&Sender.Service=BS_TEST&Interface=*
    3) http://host:port/XISOAPAdapter/MessageServlet?channel=:BS_TEST:cc_SOAP_R1&version=3.0&Sender.Service=BS_TEST&Interface=...MyNameSpace...mi_so_MSG_TWO
    Message in payload:
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <!--  Inbound Message   -->
    <MSG_TWO xmlns="urn:xxx:yyy:MyNameSpace" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">... some fields... </MSG_TWO>
    But in SOAP Header I see that is NOT second message!
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    < !--  Inbound Message   -->
    <SAP:Main>
      <SAP:MessageClass>ApplicationMessage</SAP:MessageClass>
      <SAP:ProcessingMode>synchronous</SAP:ProcessingMode>
      <SAP:MessageId>93233F70-3E2F-11DF-8CD3-00237D301CD6</SAP:MessageId>
      <SAP:TimeSent>2010-04-02T08:13:09Z</SAP:TimeSent>
      <SAP:Sender>
        <SAP:Service>BS_TEST</SAP:Service>
        <SAP:Interface namespace="urn:xxx:yyy:MyNameSpace">mi_so_MSG_ONE</SAP:Interface>
      </SAP:Sender>
      <SAP:Interface namespace="urn:xxx:yyy:MyNameSpace">mi_so_MSG_ONE</SAP:Interface>
      </SAP:Main>
    Is it correct that many kinds of messages cannot goes through one Sender Channel ? If not... How can I reuse one SOAP Sender Channel for both this messages?
    Thanks for helping.

    Thanks for answers!
    It means a webservice application will be deployed and exposed in PI using the associated Message Interface and its namespace information in the SOAP Sender channel.
    It means only one Sender Channel per one pair of names (name of Message Interface and name of namespace). And it will fail if I change something. And question is: why URL for sending SOAP message contains parameter "Interface"?
    "backward compatibility" or "for future use only"?
    Nothing happens when I change this parameter, seems that name of Interface comes from first of founded Sender Agreements.
    If the structures are the same
    No. Structures are different.
    Making one structure per all SOAP incoming messages looks workable, but... looks strange (in fact I have a lot of SOAP messages, more than 100 Sender channels).
    I found an information, that I can use one Sender channel per many messages with different structures only if I make this messages like different Operations in one Service Interface (in PI 7.1).
    But in this case in list of messages in SXMB_MONI I will see only a one name of Service Interface for all my messages and it's not so comfortably for supporting: to take a name of operation that fails I need to goes inside.
    In older version of XI (prior 7.1) using one sender channel per many messages allowed without any hints.

  • The message is not reaching the outgoing communication channel

    hi forum help..............
    i have a IDOC-XI--JDBC scenario...
    my xi receives an idoc from a sap ecc.....does a simple mapping to a jdbc structuuure and then writes to a databse....
    it was working fine..... but now i had to change the JDBC adapter configuration..means in the integration builder(configuration).. i changed the name of my database server.....
    now after making that change ....... the message is not reaching the outgoing communication channel....
    i cant see any error in the sxmb_moni....
    but there is no log for the message processing in the communication channel in the RWB............

    hi,
    Is the Database is running on the same server  and the same tables and all are existed with same structure.
    Database name is changed then you would have to check all . and after changes , did you activated ?
    If every thing is correct, then refresh Cache.
    For cache related see the below links
    /people/sravya.talanki2/blog/2005/12/02/sxicache--ripped-off - SXI_CACHE - Ripped Off
    XI Runtime cache error: Cache contents are obsolete
    Cache Refresh - SAI_CACHE_REFRESH
    /people/sravya.talanki2/blog/2005/11/03/cache-refresh-errors--new-phenomena
    Regards
    Chilla

  • Finding a System Error Message (reflected in communication channel)

    Hi,
    I am working on release 3.0. I have found a System Error Message reflected in JDBC communication channel due to a data problem. I assume that this message is old and I can not find the message. It seems that I need the exact date and time when the message was created in order to find this message. I would like to find the payload to view the data and cancel the message.
    Does anyone have any tips on how to find this sort of message?
    Thanks,
    Leanne

    use the standalone Logviewer to read the log files. Works great.
    "If you have an SAP Web Application Server Java 6.20 or below you may also get a standalone_logviewer.zip file at the SAP Service Marketplace at service.sap.com/download u2192 SAP NetWeaver u2192 Release ‘04. In this case JDK version 1.3 or higher must be installed on the system. The java version must be same on the server and the client.
    In the SAP Web AS Java 6.30 installation a folder named logviewer_standalone can be found under: <path Of J2EE installation>/<SysID>/JC<nr>/j2ee/admin/logviewer_standalone. Verify that the batch file logviewer.bat is installed in the directory logviewer-standalone.
    (source -> http://help.sap.com/saphelp_nw04/helpdata/en/e4/540c404a435509e10000000a1550b0/frameset.htm)
    procedure is ..
    1.open Visual Administrator
    2.click Log Configurator
    3.Runtime->Destinations you can find out which destination is for defaultTrace.X.trx.
    4.change the formatter from "com.sap.tc.logging.ListFormatter" to "com.sap.tc.logging.TraceFormatter"
    if change couldn't take effect,reboot j2ee.
    regards
    chandra

  • Communication channel name in message mapping ?!

    Hi,
    I have the problem that I have to know the sender channel name in a message mapping.
    The reason is, that I have to set a flag if the message comes via one sender channel.
    Of course a solution would be to use differnt Services but I won't do that. Is there any smart solution?
    Thank you for your help
    Thomas

    There are a few weblogs on gettign the filename. Check whether that would suffice for you.
    If you really need cc name try the following.
    Write a small module function for the adapter.
    (Check this note - 819761)
    See whether you can get the channel name using the object of type Channel (may be getName() or something similar, I'm not sure about this)
    If not,
    See whether you can define an additional parameter in the channel and access it in the adapter module and send it to the IE. Then make an additional parameter and set the value as cc name. (Here I'm not sure whether unrecognized additional parameter will affect the adapter functionality)
    Maybe you can give a try and let us know!
    Regards,
    kk

  • XI3.0: Multiple Communication Channels

    Hi,
    with XI 2.0 one was able to have many endpoints for one interface. For example you were able to have an inbound JMS endpoint and an inbound File endpoint. Both could be configured using the same Business System and Interface.
    We used this possibility for testing purpose.
    With XI 3.0 you have to create a sender agreement. This can only hold one communication channel. So you have to reconfigure the sender agreement all the time if you just want to send a XML File to an interface that is normally fed by a JMS queue.
    Does anybody have any hints how to achieve multiple physical connections to one logical interface?
    Regards,
      Marc

    Hi,
    One way would be to create
    new Message Interface in XI Repository
    base on the old one (for JMS)
    the only difference would be the name of the Message Interface
    and then most probably you'll be able to create
    a second sender agreement and choose a different communication channel
    Kind Regards,
    Michal Krawczyk

  • Error in calling SOAP receiver communication channel in a syncronous comm

    Hi I am getting the following dump..when I am sending some employee data from SAP to a webservice through a SOAP reciver communication channel.
    It is a syncronous communication.
    ShrtText
        Access with 'ZERO' object reference not possible.
    What happened?
        Error in ABAP application program.
        The current ABAP program "CL_PROXY_FRAMEWORK============CP" had to be
         terminated because one of the
        statements could not be executed.
        This is probably due to an error in the ABAP program.
    Error analysis
        An exception occurred. This exception is dealt with in more detail below
        . The exception, which is assigned to the class 'CX_SY_REF_IS_INITIAL', was
         neither
        caught nor passed along using a RAISING clause, in the procedure
         "XI_PROCESS_PAYLOAD" "(METHOD)"
            The reason for the exception is:
        There was an attempt to access a component using a 'NULL' object
        reference (points to nothing).
        An object reference must indicate an object (an instance of a class),
        before it can be used to access components.
        Either the reference was never set or it was set to 'NULL' using a
        CLEAR statement.
    Trigger Location of Exception
        Program                                 CL_PROXY_FRAMEWORK============CP
        Include                                 CL_PROXY_FRAMEWORK============CM011
        Row                                     46
        Module type                             (METHOD)
        Module Name                             XI_PROCESS_PAYLOAD
    I think this error is coming while sending the response..can anybody tell me how to correct this error...
    Thanks in advance...

    No in the adapter monitoring...
    It shows the messages for all other adapters...
    But there is not even a single processing message for this SOAP communication channel...it only shows active..that means I think there is no processing of messagethrough this ..is it ?...but why not there is any error in the SXMB_MONI..
    Earlier it was giving an error saying the proxy authentification required..but that doesn't work...now I have removed the proxy settings ..and it takes the program to dump..

  • Communication channels not shown in adapter monitoring

    Hello everybody,
    we got several communication channels running on the same file-adapter.
    But in adapter monitoring only ONE communication channels is shown.
    The other communication channels are not shown although we expected them at least with an error.
    Any ideas?
    Thanks a lot
    Regards Mario

    Hi,
    I think, you have chosen the selection criteria only for the Correct one in the Page.. Check with All information in adapter monitoring screen.
    Following will be looked once you don't have any adapters are visible..
    Check SAP BASIS Content is imported in the IR or not.
    Check this thread also-
    Problems in adapter monitoring
    Regards,
    Moorthy
    Message was edited by: Krishna Moorthy P
    Message was edited by: Krishna Moorthy P

  • Sender File Communication Channel Configuration

    Hi guys,
    We are trying to develop a file-to-Idoc scenario and we are facing some problems in the configuration of the sender file communication channel as far as the file format is concerned. The file, which is a material master file has the following structure:
    00.00 FileHeader
    30.00 Material n° 1
    30.01 Material n° 1
    30.00 Material n° 2
    30.01 Material n° 2
    30.00 Material n° n
    30.01 Material n° n
    99.00 FileFooter
    Initially, I developed 4 datatypes, FileHeader, Record1, Record2 and FileFooter, and 1 datatype to incorporate all of these, but I faced trouble in 'Recordset Structure' attribute in communication channel, where "FileHeader,1,Record1,,Record2,,FileFooter,1" did not work.
    After that I thought of creating one more datatype, called Record, with 0..* cardinality, that incorporates Record1 and Record2 with 1 cardinality.
    Although I have declared them correctly as "FileHeader,1,Record,*,FileFooter,1" in 'Recordset Structure', I face trouble in the table with the attributes. What shall I use: I have Record1.fieldNames and Record2.fieldNames and fieldFixedLengths, but XI requires Record...
    What you suggest?
    Evaggelos

    Hi,
    I understand your problem....
    I actually didn't look at the key fields...properly..
    You have said that when you had tried taking Record1 and Record2 in your structure you had problems...
    I  think the second way which you are trying would not work..!
    Can you try this..I am not sure if it will work..
    Have your structure as
    MT
    +Record
    ++Header
    ++Record1
    ++Record2
    ++Trailer
    So your Recordset name would be :Record
    RecordsetStructure would be Header,1,Record1,,Record2,,Trailer,1
    and then all the other parameters like fieldNames,fixedFieldLength,keyFieldValue...for Header,Record1,Record2,Trailer
    U might just try out with this
    Regards,
    Manjusha.

  • Problem of Creating Multiple Communication channels for multiple files

    Hi Everybody
    I have a very basic doubt but this struck me...
    For a file-XI-file scenario,if multiple files are coming from same FTP server but with different names then we have to create multiple communication channels for all the files of different names..but is this a intelligent approach?Can we do something so that only one communication channel can receive multiple files of different names?plz explain in detail if possible ASAP.
    I have another doubt as in File-XI-File scenario how the XI understands that a particular file is from this FTP server  needs to be send to another particular FTP Server?is it only the name of the file which we give in sender comm channel & receiver comm chaneel which determines this????that means this name should always be same?plz explain in detail if anybody knows?

    Thanks Aamir.I understood the solution.
    Correct me if I am wrong.......
    1)If there are multiple files with different names & different extensions in the sender FTP then we use-->
    2)if there are multiple files with different names & different extensions in sender FTP & I want only say files of 2 extension types(say .xml & .txt)then we use-->
    *.xml
    in one comm channel &
    *.txt
    in another comm channel rite??
    Also I wanted to ask that only two kinda files we can pick up through sender comm channel rite?
    .xml  and .txt(File content Conversion).Can we pick files of other extensions also?(say .doc,.xls)If we use as u said
    then files of all other extensions will also be picked up rite?bt hw will xi convert them into xml?plz explain......
    One of my other q is not answered yet.........all these same doubts are there for receiver communication channel.......but you all have not said nething abt the receiver comm channel........plz explain the answers to all these queries for receiver comm channel for a receiver FTP........ASAP......thanks once again.......

Maybe you are looking for