Message Splitting Design Problem

Hi guys,
I am an XI newbie so please bear with me.
I have to build an XI interface to update existing service orders in CRM.  The data is coming from a file, which contains change requests for multiple orders (and possibly multiple requests for the same order).  The sequence in which the requests are processed is important.  The XI system is on version 3.0 SP14, and the CRM system is on WAS 7.00.
I can think of two approaches to follow:
1. Push all the requests through to CRM via an ABAP proxy call (one single call).  Inside the proxy, process the requests sequentially.  This approach is simple to implement, but problems arise when some of the requests succeed but others fail.  There is no option to reprocess just the failed requests, because there is just one XI message.
2. Split up the requests and send them to CRM, queuing the requests by service order number.  This means performing message-splitting in XI (with or without BPM) and using the EOIO quality-of-service.  The endpoint would still be an ABAP proxy.
I would like to use the second option, but I've got some concerns:
a) If I use mapping-based message splits (bulk messages), can I still use ABAP proxies?  I cannot see the XI adapter listed in the relevant SAP help page:
http://help.sap.com/saphelp_nw2004s/helpdata/en/43/ce79623ef30cd5e10000000a1553f7/frameset.htm
b) If I use BPM to do the splitting, might I run into performance problems?  I do not have precise numbers, but I think we might process up to 50,000 requests daily.
c) Should I consider using other adapters that support bulk messages, e.g. SOAP adapter.  Or use IDOC bundling as described in this blog?
/people/michal.krawczyk2/blog/2005/12/04/xi-idoc-bundling--the-trick-with-the-occurance-change
d) Can someone suggest better approaches?
Thanks,
Terry Choy

c) The standard IDOC is not enough, because there is some extra business logic that needs to be performed. I would need to create a custom IDOC. Is that worth the effort, and would I be losing anything by using IDOC's rather than proxies?
>>>>
if the message voluem is too high try to avoid IDocs. (you have to decide on the amount of work that will go in in case u make a custom idoc or a proxy)
a) I tried bulk messages using ABAP proxies, but got an error in the technical routing step. The error was in the MMF_ENGINETYPE code area, and the message was "A system error occurred in the outbound binding" (not very informative). I didn't get the problem when I used the file adapter. Can someone please confirm that bulk messages with ABAP proxies is OK?
>>> i dont think it sud be a problem with ABAP proxy but then you can try using EOIO in the proxy code. ref: /people/arulraja.ma/blog/2006/08/18/xi-reliable-messaging-150-eoio-in-abap-proxies

Similar Messages

  • Problem with Mulit Mapping/Message Split

    Hi,
    I am a newbie to XI trying to set up a file2file scenario with multi-mapping/message splitting without BPM.
    System is XI 3.0 SP14
    Scenario is:
    read an XML-File and multiply it and write 2 XML-files using the File adaptor.
    For reference I used "multimapping without BPM".
    - setting occurancy of Message types to unbounded in both Message Mapping and Interface Mapping.
    - using the RB_Split button
    - setting up one business service containing 2 message interfaces and 2 communication channels for output.
    Designing and Konfiguring worked fine.
    File is read but no file is written.
    XML-Moni tells me "Mapping did not create Messages" 
    I did extensive studies in sap.help, forum and various blogs. Also to verify Messagetypes and Kommunication channels I set up similar file2file scenario without splitting. Nothing really helped.
    Any clues?

    Hi again,
    very efficient method to test XML-source file. - Thanks.
    Unfortunately it did not solve my problem.
    Again: "Split mapping did not create messages"
    Below you can find a part of the trace created when processing this message:
    <Trace level="3" type="T">Multi mapping required.</Trace>
      <Trace level="3" type="T">Creating Java mapping com/sap/xi/tf/_MM_data_duplic_async_.</Trace>
      <Trace level="3" type="T">Load ac6179b0-a92e-11da-be15-e51f0a000472, http://MyTutorial/SHeinz05, -1, com/sap/xi/tf/_MM_data_duplic_async_.class.</Trace>
      <Trace level="3" type="T">Search com/sap/xi/tf/_MM_data_duplic_async_.class (http://MyTutorial/SHeinz05, -1) in swcv ac6179b0-a92e-11da-be15-e51f0a000472.</Trace>
      <Trace level="3" type="T">Loaded class com.sap.xi.tf._MM_data_duplic_async_</Trace>
      <Trace level="2" type="T">Call method execute of the application Java mapping com.sap.xi.tf._MM_data_duplic_async_</Trace>
      <Trace level="2" type="T">Java mapping com/sap/xi/tf/_MM_data_duplic_async_ completed. (executeStep() of com.sap.xi.tf._MM_data_duplic_async_</Trace>
      <Trace level="3" type="T">Nachrichtentyp 1 Anzahl der Nachrichten 0</Trace>
      <Trace level="3" type="T">Nachrichtentyp 2 Anzahl der Nachrichten 0</Trace>
      <Trace level="1" type="E">CL_XMS_PLSRV_MAPPING~ENTER_PLSRV</Trace>
      </Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST">
      <Trace level="3" type="T">Persisting message after plsrv call</Trace>
      <Trace level="3" type="T">Message-Version = 005</Trace>
      <Trace level="3" type="T">Message version 005</Trace>
      <Trace level="3" type="T">Pipeline CENTRAL</Trace>
      </Trace>
      <Trace level="3" type="System_Error">Error exception return from pipeline processing!</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
    - <!--  ************************************
      -->
      <Trace level="3" type="T">Persisting message Status = 014</Trace>
      <Trace level="3" type="T">Message version 006</Trace>
      <Trace level="3" type="T">Pipeline CENTRAL</Trace>
      </SAP:Trace>
    Test of MM and IM is always successful.
    Any clues?

  • Integration Process problem in Message Split.

    Hi all,
    I have done message split using the this blog.
    /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
    I am getting problem in the BPM i.e. in Integration Process. In the message monitoring of RWB I am able to see data Outbound to BPM exchange but BPM to Inbound is not at all happening.
    I dont have any SAP tools to trace the BPM.
    I have been trying this for 3 days desparately.
    Can somebody please help me in this.
    Thanks,
    Subhosh.

    Hi,
    Like mentioned by Udo, you need to have the SAP log on to be able to debug and find the cause for your problem.
    One option, can you look into message monitoring in RWB and check what the error message is?
    Regards,
    Bhavesh

  • Problem regarding bpm message split scenario

    hi experts,
    iam doing a scenario file->bpm->file scenario
    msg->msg1+msg2 message will be split like this
    my second msg is logically deleted from system.i found this in PE of sxmb_moni
    i got only the first part of the splitting.
    start->receive->transformation->fork->two receiver determinations for two branches and-> after that two send steps after two receiver determnations -->close of fork->stop
    sxi_cache is zero
    where it went wrong.
    could u plz tell me the reason when this will happen(second message is logically deleted).

    HI
    Are you following this blog
    Illustration of Multi-Mapping and Message Split using BPM in SAP Exchange Infrastructure
    Check with your Transformation step and receiver determination you are trying in fork.
    Check with your mapping. Is it creating target messages properly.
    Thanks
    Gaurav

  • Problem in message splitting...

    Hi All,
    I am using a BPM iwhere i am doing message splitting by using a transformation step, after this transformation step i kept one loop to collect and process this splitted messages... but first message from splitted messages only gets into loop and processed.... rest of messages are not getting out of transformation or they are not getting into loop.... can anybody help me out that how i send rest of splitted messages into loop.
    Thanks in advance..
    Srinvas.

    Hi,
    What kind of collection pattern are you using?
    Regards
    Ivan

  • Design problem about repreatable entity relationships

    Hi all!
    As I design the data model (let's name it the ERD, no matter the name is quite unfashonable), I have found almost identical structures of entities and relationships between them, but playing completely different roles in the semantics of the model.
    It obviously makes no sense to implement all such entities separately as the Entity EJB as they are to share most of the fields and methods, but I found no "handsome" solution when trying to implement them as sets of classes and interfaces forming "the abstract EJBs", and then by putting the conrete classes and complementary interfaces at the final packages to create "concrete EJBs". The problem was about types returned by the createXXX and findXXX methods, because they had to return the "abstract" EJBs but the EJB programming contract forces them to return the "concrete" ones, that are unknown to me when defining the "abstract ones". So it cancels the sense for creating them this way. It was also unclear how to operate the relationships in such model.
    The idea was:
    1. I define BaseSthLocalHome extends EJBLocalHome
    2. I define BaseSthLocal extends EJBLocalObject
    3. I define BaseSthBean implements EntityBean
    ... this way I have the "abstract bean", and then I can create many:
    SthOneLocalHome extends BaseSthLocalHome,
    SthOneLocal extends BaseSthLocal,
    SthOneBean extends BaseSthBean ... to have the first "concrete" EJB,
    SthTwoLocalHome extends BaseSthLocalHome... and so on to create the second, third and all the next "concrete" EJBs.
    Anyway, it did not work fine as I defined createXXX and findXXX methods at the BaseSthLocalHome interface - it made sense, because those methods did not depend on the other entities.
    Has anyone some idea of how to solve the design problem? Currently we are at very beginning of the project, so we have some "case study" time, and I would appreciate any solution: redesign of the data model, extraction of new EJB modules or any use of the objective inheritance.
    Thanks in advance!
    Marcin Gawlik

    Again me - I now it is a bad idea to reply for own messages, but I have just checked a new idea:
    The problem was about re-using the same components in different roles. I tried to do that by creating subclasses of the EJB classes, but it did not work. So I tried to define multiple entity EJBs that have the same class.
    Considering the given example, it would look:
    1. public interface BaseSthLocalHome extends EJBLocalHome
    2. public interface BaseSthLocal extends EJBLocalObject
    3. public abstract class BaseSthBean implements EntityBean
    ... then I created the deployment descriptor that deploys this pack of class and interfaces as three separate CMP Entity Beans:
    1. deploy BaseSthBean as the SthOne CMP entity EJB
    2. deploy BaseSthBean as the SthTwo CMP entity EJB
    3. ... and so one
    The question is: IS THERE ANY CONTRA FOR THIS WAY OF DEPLOYING EJBS? Is there any reason for not to use the same class and its complementary interfaces many times to create many separate enity EJBs working within the same EJB module?
    Thanks in advance!
    Gaw

  • Design problem: Central MessagePool in WebDynpro App.

    Hi people,
    I have a design problem in my webdynpro application:
    I'm designing an application with different DC's. The architecture of the application is similar to the architecture described in the document "Web Dynpro Component
    Interface Defintions in Practice SAP NetWeaver ’04s": One root DC which manages the differnt child DC's, which contain the application content.
    Now I want to have a central MessagePool. Certain Messages in the child DCs are the same, and I don't want to have multiple MessagePool-entries for the same Message (each child DC has to define its own messages).  I can't  use the root DC as central MessagePool, because the Child DCs havn't access to the root-DC.
    Any idea, how to define and use a central MessagePool?
    Regards,
    Thomas

    Hi Thomas,
    Instead of the architecture what you are thinking try the architecture explained in the following link:
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f4d79e59-0601-0010-0689-89670315bc6b">link</a>
    Dont forget to award points on helping answers
    Regards
    sid

  • Design problem: RS232 communication

    Hi,
    I have a design problem for communication with a device via RS232. Since I'm normally a C++ programmer I might just look at the problem from a wrong angle and hope for some hints how to do it in LabVIEW.
    The scenario:
    A device is communicating with the PC via RS232. The device permanently sends data packets. At the same time, commands can be sent to the device and it returns replies. Data packets and reply packets are arbitrarily mixed, i.e. after sending a command there could be a couple of date packets before the reply comes back but the packets can be distinguished by an identifier.
    At least one, ideally several VIs should communicate with the device. Commands should be sent by pressing buttons and the incoming data should be parsed (the packets contain mutliple data streams) and shown on graphs or saved to files.
    My initial idea:
    Coming from C++ I wanted to build a class for the communication that permanently reads the incoming data and splits it to reply and data packets. This class would then have a function to send out a command and would return the reply or a timeout and it would be possible to register and unregister listeners (I wanted to use queues for this) for the various data streams.
    The problems I ran into:
    There were a couple but the two most pressing problems were: how could I communicate with the constantly running sample VI (e.g. to stop sampling) and how could I propagate changes to the class to it (e.g. new listeners). Since it is not returning I don't see a good way to implement it as in instance funcion (i.e. pass it the object). I could probably not let the sample function run continously but call it periodically from outside. However I planned to implement the class as a singleton, so it could be used parallely from different VIs.
    Is there a best practice for a case like this?
    I'm glad about any hints or ideas.
    Thanks,
    Tobias

    tfritz wrote:
    Hi,
    thanks. Since almost the same thing was suggested to me in a German forum I guess this is really common practice (using one VI with different methods controlled by a queue). It still seems a little "unnatural" for me but my biggest concern (bad interface description) was shattered by the suggestion in the link you sent me to wrap these functions with wrapper VIs, thus caller VIs won't have to deal with the call-by-queue-mechanism. This might also be easier to port to a different implementation later. However I still see the danger that the continously running VI could easily become bloated. 
    It also requires me to change the way I have looked at VIs until now. In our course they told us that VIs are basically functions. Using this design patterns, the VI becomes more of a module, really (Like a C module implemented in a C-Source file). But I will try it. It sounds as if it could work.
    I will still look into the OOP solutions a little more, though. Do I understand you correctly that you wouldn't recommend using LVOOP because it's still buggy? What about dqGOOP for example? This sounds like it could do what I need (however it doesn't seem to implement things like polymorphism, late binding and inheritance so I don't quite see what's so OOP about it. It seems more like programming with structures in C.)
    I don't know if LVOOP is buggy or not.  I think early on it was buggy and things have improved in recent versions. I have read that it doesn't have all the features that you would have in OOP like C.  I wouldn't recommend it only because I'm not familiar with it at all.  I can't recommend something that I'm not comfortable with.  If you go that route, plan on spending time in these forums and in LAVA to reading up on what others have done.  I haven't hard of dqGOOP.
    But back to your suggestion. I still have a couple of questions:
    - How do you return values from the module? Would you use a queue for that as well?
    - Where would the parameter queue be held (created and passed to the VI)
     I would store all of these in a functional global variable.  This is the VI that stores data in shift registers.  Ben's action engine nugget is an advancement on that.  This allows for both the calling VI and the parallel running subVI to get and set the data as needed.  It runs quickly so neither process should be forced to wait while the other  VI is doing its thing.
    - My VI has to be constantly sampling and this shouldn't be interrupted too long by other functions as adding a listener. However both functionalities have to access the same kind of data. Is there an easy way to parallelize this? Would the sampling be a case in the case diagram that's always used if no command was sent to the VI or would it somehow run parallely?   Yes.  There are a couple of ways of doing this.  One would be for the dequeue to have a timeout function.  In the event the dequeue times out, you run the code that is doing the acquisition.  I think a better method is that the code that does the acquisition enqueues its own command again to the end of the queue.  Let's say that is command A.  So when case A finishes, it enqueues A, which seeds itself to run again.  So if nothing else comes into the queue, it just executes A , A, A, A.  But let's say another section of code needs to do something such as command B.  It will slip B into the queue while A is executing.  So you would A, B, then A again, because A would get slipped back into the queue when the first A finishes, but B has already been put in while the first A was running.
    - Would it be possible to make the VI reentrant and in this way use it simultaneously on different COM ports (using different parameter queues as well)? I'm not sure if I will need this but it would be neat if it could work.
    I think you could do this.  It may be a case where the VI is saved as a template  (.vit) and you initiate it multiple times.  I haven't needed to do this before, so I'm afraid I can't provide any details or useful tips. 
    Well, I will fool around some more. Thanks so much for your help. This is kind of exciting since the concepts are quite new for me. Btw, is there something like an academic theory (computer science) for LabVIEW? I came across functional languages in university but data flow languages are still a new concept for me.
    Tobias
    tfritz wrote:
    Another question about the "dynamically starting" of the VI:
    How is the path handled? Is it guaranteed that it always takes the VI from the project or does it just search for the first VI by that name it finds in the file structure? Does this still work when building an .exe from the project? What happens if the VI is already running? Can you test for this?
    While I'm at it: is there a way to stop LabVIEW from searching for subVIs it can't find when openin a VI? This resulted in very unexpected behaviour sometimes where it would find the VI somewhere else (with the same name but maybe an older version).
    In my case, I just had the path hardcoded.  It is my only instance, I'm not planning on moving the VI's.  If you don't have the path, it will take a VI by that name if it's in memory.  If it isn't in memory, it starts searching relative to the calling VI's path.  One thing I know, if you are dealing with relative paths, a subVI has a different relative path in an .exe as opposed to the development environment.  The name of the .exe becomes a folder.  So in development, if your sub VI is mySubVI.vi.  In an executable, its path is MyExe.exe\MySubVI.vi
    For all of this, I recommend searching the forums to get more details.
    If it is searching for a VI, you can hit ignore.  But of course you'd have to do it before it finds it.  When you are dealing with versioning issues, I recommend making a backup copy of the entire directory structure elsewhere.  Some location where it shouldn't stumble across it.

  • Message-Split in a Sync Scenario

    Hello Experts.
    As i am quite new to Pi, i have some problems with an integration scenario we are about to implement. As i am not really into the topic, i do'nt even know, if the prefered solution can be implemented in PI or if our current approach is nonsense after all.
    The currently preferred solution would look like this:
    1.) The sender system collects the data and sends one message using a synchronous webservice call
    2.) PI splits the message into n parts (one outgoing message per receiving system), sends the message-parts synchronously to the receiving systems, collects the response messages into one big message and sends this message as the response message for the webservice-call, the sender system made.
    3.) The sender system receives the response message and updates the database.
    The problem is, that i have no clue how to do a message-split in a Sync scenario. I already experimented with a message-split in Async scenarios and everything worked fine, but i have no idea, how to do the trick in a Sync scenario.
    As the incoming message represents a table (only one kind of element; occurence 0...unbounded), i would have to do the following:
    1.) Split the incoming message line by line (or childnode by childenode)
    2.) Collect the lines for the single receiver systems (each receiver should get only one message)
    3.) Send the messages
    4.) receive the results
    5.) Join the results into one response message / Handle timeouts, if a receiver could not be reached in time
    6.) Send the response message to the sender system
    When experimenting with the async scenario, i used BPM to split the message into parts, but an integration process seems to need asynchronous abstract interfaces. At least PI did not accept my synchronous message-Interface and even if it would do so, i would have no idea how to send the message parts synchronously and how to join the results.
    Of course we could also send one record per message - in this case everything would be easy and clear, but unfortunatelly this is not the preferred solution, but the "Plan B"...
    Does anybody know how to do what we want? Any suggestions would be highly appreciated.
    And by the way: We are using PI 7.0.
    Regards, Jörg

    Thanks for your reply.
    I was already afraid, that the preferred approach could be a dead end. If the described scenario is impossible to implement, i could immagine two alternative solutions:
    1.) Our "Plan B":
    -> Single records
    -> One record per message
    -> Synchronous communication
    PI would only have to do a quite stupid routing based on a certain field in the message.
    2.) Something totally different:
    -> Asynchronous communication
    -> The sender still send the data for n receivers in one message
    -> PI splits the message and sends the n parts to n receivers
    -> The receiver sends a response after processing the data
    -> PI simply forwards this message to the sender
    I think scenario #2 could have a better performance, as the total number of messages is limited to the necessary minimum, but as i'm not experienced in PI, i'm not actually sure about this.
    Any recommendations?
    regards, Jörg

  • BPM: error at exactly 2500 messages after message split: no coincidence?

    Hi everybody,
    we poll a message, split it in BPm and than call a WebService.
    We got an error exactly after 2500 messages were processed successful.
    Is there a special parameter which influences the BPM?
    Thanks a lot
    Regards Mario

    Hi,
    In SXMB_ADM you can set the time out higher for the sync processing.
    Go to Integration Processing in SXMB_ADM and add parameter SA_COMM CHECK_FOR_ASYNC_RESPONSE_TIMEOUT to 120 (seconds). You can also increase the number of parallel processes if you have more waiting now. SA_COMM CHECK_FOR_MAX_SYNC_CALLS from 20 to XX. All depends on your hardware but this helped me from the standard 60 seconds to go to may be 70 in some cases.
    Make sure that your calling system does not have a timeout below that you set in XI otherwise yours will go on and finish and your partner may end up sending it twice
    when you go for BPM the whole workflow
    has to come into action so for example
    when your mapping last < 1 sec without bpm
    if you do it in a BPM the transformation step
    can last 2 seconds + one second mapping...
    (that's just an example)
    so the workflow gives you many design possibilities
    (brigde, error handling) but it can
    slow down the process and if you have
    thousands of messages the preformance
    can be much worse than having the same without BPM
    see below links
    http://help.sap.com/bp_bpmv130/Documentation/Operation/TuningGuide.pdf
    http://help.sap.com/saphelp_nw04/helpdata/en/43/d92e428819da2ce10000000a1550b0/content.htm
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/3.0/sap%20exchange%20infrastructure%20tuning%20guide%20xi%203.0.pdf
    BPM Performance tuning
    BPM Performance issue
    BPM performance question
    BPM performance- data aggregation persistance
    Regards
    Chilla..

  • IDOC_TO_FILE ALEAUDIT message SPLIT

    Hi, 
    1.   I am sending an IDOC from R3 to XI.
    2.   In XI IDOC splits in to 2 messages
    3.   XI sends the 2 messages to 2 File systems(FTP).
    4.   NO BPM,  tried on SP19 / SP20,
    5.    Expected 2 ALEAUDIT messages back to R/3
    Problem:
        ALEAUDIT messages are not reaching the R/3.
    Additional Info:
      1. I dont have any problem in receiving ALEAUDIT message in IDOC_XI_FILE scenario with out message split, means one receiver. Problem is with message split and 2 receivers.
    Thanks in advance.
    Moni

    Hi Moni,
    Please check following points -
    1. Do you get any error in SXMB_MONI transaction in XI? Whats happening to the response messages there? Are you able to see any entry in SXMB_MONI for that?
    2. Also ALEAUDIT idoc only allows few statuses not all. It will be worth checking which status is being passed back to R3. (This will not be relevent in you case as the scenario works without message split...)
    3. Check if you have set up partner profiles correctly and corresponding parter number is set in Idoc specific attributes in adapter channel.
    Hope this helps.
    Rahul.

  • Message Split 1:n

    I have created a multi-mapping for a message split (1:n transformation). Tested the mapping and it works fine. However when I try to activate the related interface I get the error:
    A multi-mapping with multiple source or target interface instances is only recommended with asynchronous interfaces, since only a mapping of this type can be used in the process editor.  IDoc ORDERS.ORDERS05 | urn:sap-com:document:sap:idoc:messages are not asynchronous abstract interfaces
    As my interface is asynchronous, and according to SAP-Docu this is the only restriction for a multi-mapping - I have no clue what the problem is?? Has anybody a hint?
    Regards
    Anna

    Hi Anna,
    When you import standard structures like ORDERS.ORDERS05 , It imports both message interface(this interface does not have any direction like i/b, o/b or abstract ) and message type, but you can use these interfaces only ouside the BPM. If you want to use them in BPM then you need to create Asynchronous Abstract interfaces using the imported message types.
    Please create Abstarct Asynchronous interface for ORDERS.ORDERS05 to use in BPM. 
    Regards
    Anand

  • Message split - XML to IDOCs - (1:n) mapping

    I have to split an incoming XML(in idoc DEBMDM format) from MDM to 2 Idocs (ADRMAS & DEBMAS).
    Target message set to occurences "0:unb".
    Have tested my graphical-mapping in IR and its working fine. Tested the configuration and got error in IB.
    In SXMB_MONI i find the error message,
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="OUTBINDING">CO_TXT_MMF_ENGINETYPE</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Messages in multi-message format can only be sent to one Adapter Engine</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Read in few threads about creating a "custom adapter module"...is this right? if so.... how to proceed ?
    Appreciate any help.

    Ram,
    Message Split using Graphical Mapping that ur using now supports adapter which are on same J2EE engine .
    In ur case Ur trying to post IDOCS ( I suppose ) which is not
       supported in using Graphical mapping.
    U need to change the design.
    -- Kavitha

  • Message splitting 1:n without BPM error : 404   Not Found

    hi,
    is u r server is updated with sps14
    please once check this.. may be this is the problem
    Thanks,
    Madhav.
    Note:points if useful

    hi,
    please go through the limitation of this bolg
    A mapping-based message split will ultimately produce n individual messages, but not until it reaches the Adapter Engine (AE). Inside the Integration Engine (IE), the messages are grouped together and persisted as one bulk message. The bulk message is sent to the AE where it splits the bulk message into individual messages and persists them.
    Restrictions
    u2022  Messages that result from the split in a mapping-based message split are sent using one AE. So only adapters running on the AE are supported. In particular, this means that target IDOC/HTTPmassagee splits are not supported since the IDOC/HTTP adapter is not part of the AE.
    u2022  The target system of the message splits cannot be an integration process.
    u2022  Attachments from the original message are not appended to the messages resulting from the message split.
    now i think u wont be able to send the the 2 diffrent file in diffrent location.both the file cab be sent to be togethre.because when u configure the receiver determination in ID u need to include both receiver service as a receiver.and thus u need to configuer 4 interface determinatio as well as 4 receiver aggrement. this is because you r using the only one IM which containg both the interface.
    regards,
    navneet

  • IDOC Message Splitting with Logic

    Hi,  I have a business requirement for IDOC to IDOC mapping where the incoming IDOC line item should be split in to multiple line items based on a field value and also the resulting IDOC will be split in to multiple IDOCs based on a limitation on the number of line items. Without using BPM, have anybody used SAP XI to efficiently perform the above logics with proper check logics and error controls ? Appreciate your responses.

    Hi Raj,
    Try this:
    You can use Split by Value node function and set the properties of the split by value as: Each Value.So the for every different number,different item will be created.
    Using the Node Functions you can solve your problem.
    1.SplitByValue:
    The SplitByValue() function is the counterpart to removeContexts(): Instead of deleting a context, you can insert a context change in the source value queue. You then receive this element for each inserted context change instead of a top node element. However, for this to be possible, the top node source field must be assigned a top node target field and minOccurs must be >0. You can insert a context change in the queue after each value, after each change to the value, or after each tag without a value.
    2.RemoveContexts:
    You use removeContexts () to delete all the top contexts for an element. This removes all top hierarchy levels, so that all elements of the target queue are assigned to a root element of the source queue.
    Advanced user-defined functions can import either just one context into the input arrays, or complete queues. Make your selection by selecting or deselecting the Save Entire Queue in Cache checkbox in the function editor.
    3.CreateIf:
    CreateIf node function is used to create a node if true value is passed to it otherwise suppress it.
    4.collapseContext
    To remove the context in between the value and transfer only one value at a time
    5.useOneAsMany
    First Input:
    The value which is needed to be repeated.
    Second Input:
    It defines how many times the first input should be repeated.
    Third Input:
    It define when the context should be changed (on the basis of the required output
    Please go through the given link hope it will be helpful to you.
    /people/sravya.talanki2/blog/2005/12/08/message-mapping-simplified-150-part-ii
    Message Mapping Simplified – Part II
    /people/sravya.talanki2/blog/2005/12/08/message-mapping-simplified-150-part-ii
    Replication of Nodes Using the Graphical Mapping Tool
    /people/claus.wallacher/blog/2006/04/17/replication-of-nodes-using-the-graphical-mapping-tool
    Message Splitting Using the Graphical Mapping Tool
    /people/claus.wallacher/blog/2006/06/29/message-splitting-using-the-graphical-mapping-tool
    Also check this weblogs:
    /people/sravya.talanki2/blog/2005/08/16/message-mapping-simplified--part-i
    /people/sravya.talanki2/blog/2005/12/08/message-mapping-simplified-150-part-ii
    Split by value
    http://help.sap.com/saphelp_nw04/helpdata/en/21/3bb8c495125e4eb5969f0377885fe0/content.htm
    For value mapping check this video presentation and weblog:
    /people/sreekanth.babu2/blog/2005/02/23/value-mapping-replication
    /people/community.user/blog/2007/01/08/valuemapping-using-the-graphical-mapping-tool
    https://www.sdn.sap.com/irj/sdn/docs?rid=/webcontent/uuid/110ff05d-0501-0010-a19d-958247c9f798#xi [original link is broken]
    /people/claus.wallacher/blog/2006/04/17/replication-of-nodes-using-the-graphical-mapping-tool
    Function formatByExample:
    /people/sundararamaprasad.subbaraman/blog/2006/02/21/real-example-for-formatbyexample
    Split by value, remove context and collapse context:
    /people/sravya.talanki2/blog/2005/12/08/message-mapping-simplified-150-part-ii
    Reward points if this helps
    Regards
    Pragathi.

Maybe you are looking for

  • Laptop crashes when ac power cord is plugged in or removed

    i have a dell inspiron duo 1090.  whenever i plug in, or remove the power cord the system crashes.  it appears as though it kills xorg or xserver or whatever in the process.  basically the screen goes to terminal and it sends a bunch of text really f

  • Malformed PO pdf filename

    Hi, I have a situation where when we create and send POs by email some files do not contain the PO number in the file name as they should. It appears to be random, but happens enough to be an issue. It does not appear to be dependant on the vendor, s

  • G5 single 1.8 to a Intel Quad 2.66????

    How much of a jump in rendering time should i see? Current machine single 1.8 with 512 RAM, going to 2.66 Dual with 2G RAM I do a lot of work with encoding flv for web, mostly sports highlights. So typically short packages of under 3 minutes. Now it

  • RE:queue issue

    Hi all i have an issue recently They are Some  standard demos that have worked in DED/DEA for years.  Iu2019m not sure what could have changed to affect this every message is struck in the queue . A restart may not fix the issue, it looks like the XI

  • Office Add-Ins : Langauge mismatch

    Hello I installed on Wondows XP OBI EE 10.1.3.4.1 and Ms Office 2007 (english) After installing and configuring Oracle BI Office (like explain in OBE : Using OBI Office Add-Ins with OBI EE ...) I tried to insert data in Excell from Oracle BI Catalog