Multi-mapping scenario with multiple receivers

Hello all,
I have an interface using multi-mapping to generate to different files types from one source; works great.
JDBC --> XI --> (1) XML (2) CSV
I now need to have the XML file go to one receiver and the CSV file needs to go to a second receiver.  I've looked at the blog:
/people/venkataramanan.parameswaran/blog/2006/03/17/illustration-of-enhanced-receiver-determination--sp16
This blog shows how to configure dynamic receiver determination based on the source data.  In my case the output files are identical (as far as mapping), the only difference is the output format.  Has any one seen a "How to" document or blog more in line to my scenario?
Regards,
Jose

Hi,
You can also do this way
You can define as many number of Business system you need. Say for eg you need to send XML to one BS and CSV to another BS.
Instead of doing Extended interface determination... Goto to Receiver Determination and when you are adding the Receiver service you have the option to add one more Service... There you give both the Business Service and hence you will have two inbound interface and you can different interface mapping and so on..
Regards,
Prakash

Similar Messages

  • Execute scenario with multiple variables through ODIInvoke webservice

    I am looking to execute scenario with multiple variables through ODIInvoke webservice but can't seem to get the SOAP request formatted correctly. Here is what I have tried but I get a parsing error.
    <invokeScenarioRequest>
    <invokeScenarioRequest>
    <RepositoryConnection>
    <JdbcDriver>org.hsqldb.jdbcDriver</JdbcDriver>
    <JdbcUrl>jdbc:hsqldb:hsql://localhost</JdbcUrl>
    <JdbcUser>sa</JdbcUser>
    <OdiUser>SUPERVISOR</OdiUser>
    <OdiPassword>SUNOPSIS</OdiPassword>
    <WorkRepository>DEVELOPMENT</WorkRepository>
    </RepositoryConnection>
    <Command>
    <ScenName>I_TEST_WS</ScenName>
    <ScenVersion>001</ScenVersion>
    <Context>DEVELOPMENT</Context>
    <LogLevel>5</LogLevel>
    <SyncMode>1</SyncMode>
    <Variables>
    <Name>SNI.DMN_CD</Name>
    <Value>DTA</Value>
    </Variables>
    <Variables>
    <Name>SNI.ADPT_CD</Name>
    <Value>RAT_CD</Value>
    </Variables>
    </Command>
    <Agent>
    <Host>S119SNIP045166</Host>
    <Port>20910</Port>
    </Agent>
    </invokeScenarioRequest>
    </invokeScenarioRequest>
    Here is the error I am getting
    com.sunopsis.wsinvocation.SnpsWSInvocationException: java.lang.RuntimeException: Unexpected subelement Name
         at com.sunopsis.wsinvocation.client.a.a.d.requestReply(d.java)
         at com.sunopsis.graphical.wsclient.f.b(f.java)
         at com.sunopsis.graphical.tools.utils.swingworker.v.call(v.java)
         at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)
         at com.sunopsis.graphical.tools.utils.swingworker.l.run(l.java)
         at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
         at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
         at java.lang.Thread.run(Thread.java:595)
    Caused by: java.lang.RuntimeException: Unexpected subelement Name
         at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
         at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
         at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
         at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1515)
         at org.apache.crimson.parser.Parser2.content(Parser2.java:1766)
         at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1494)
         at org.apache.crimson.parser.Parser2.content(Parser2.java:1766)
         at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1494)
         at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:500)
         at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)
         at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
         at javax.xml.parsers.SAXParser.parse(SAXParser.java:375)
         at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
         at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
         at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
         at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
         at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
         at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
         at org.apache.axis.client.Call.invoke(Call.java:2767)
         at org.apache.axis.client.Call.invoke(Call.java:1792)
         at com.sunopsis.wsinvocation.client.a.a.d.a(d.java)
         ... 8 more
    Caused by:
    AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client
    faultSubcode:
    faultString: java.lang.RuntimeException: Unexpected subelement Name
    faultActor:
    faultNode:
    faultDetail:
         {http://xml.apache.org/axis/}stackTrace:java.lang.RuntimeException: Unexpected subelement Name
         at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
         at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
         at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
         at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1515)
         at org.apache.crimson.parser.Parser2.content(Parser2.java:1766)
         at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1494)
         at org.apache.crimson.parser.Parser2.content(Parser2.java:1766)
         at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1494)
         at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:500)
         at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)
         at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
         at javax.xml.parsers.SAXParser.parse(SAXParser.java:375)
         at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
         at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
         at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
         at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
         at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
         at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
         at org.apache.axis.client.Call.invoke(Call.java:2767)
         at org.apache.axis.client.Call.invoke(Call.java:1792)
         at com.sunopsis.wsinvocation.client.a.a.d.a(d.java)
         at com.sunopsis.wsinvocation.client.a.a.d.requestReply(d.java)
         at com.sunopsis.graphical.wsclient.f.b(f.java)
         at com.sunopsis.graphical.tools.utils.swingworker.v.call(v.java)
         at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)
         at com.sunopsis.graphical.tools.utils.swingworker.l.run(l.java)
         at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
         at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
         at java.lang.Thread.run(Thread.java:595)
         {http://xml.apache.org/axis/}hostname:S119SNIP045166
    java.lang.RuntimeException: Unexpected subelement Name
         at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
         at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
         at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
         at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1515)
         at org.apache.crimson.parser.Parser2.content(Parser2.java:1766)
         at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1494)
         at org.apache.crimson.parser.Parser2.content(Parser2.java:1766)
         at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1494)
         at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:500)
         at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)
         at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
         at javax.xml.parsers.SAXParser.parse(SAXParser.java:375)
         at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
         at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
         at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
         at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
         at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
         at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
         at org.apache.axis.client.Call.invoke(Call.java:2767)
         at org.apache.axis.client.Call.invoke(Call.java:1792)
         at com.sunopsis.wsinvocation.client.a.a.d.a(d.java)
         at com.sunopsis.wsinvocation.client.a.a.d.requestReply(d.java)
         at com.sunopsis.graphical.wsclient.f.b(f.java)
         at com.sunopsis.graphical.tools.utils.swingworker.v.call(v.java)
         at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)
         at com.sunopsis.graphical.tools.utils.swingworker.l.run(l.java)
         at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
         at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
         at java.lang.Thread.run(Thread.java:595)
    If I change it from
    <Variables>
    <Name>SNI.DMN_CD</Name>
    <Value>DTA</Value>
    </Variables>
    <Variables>
    <Name>SNI.ADPT_CD</Name>
    <Value>RAT_CD</Value>
    </Variables>
    to
    <Variables>
    <Name>SNI.DMN_CD</Name>
    <Value>DTA</Value>
    </Variables>
    the session runs. Does anyone know the syntax for multiple variables being passed?
    Thank you,
    Troy

    Hi,
    The xml should be like this
    <variables>
    <name>SNI.DMN_CD</name>
    <value>DTA</value>
    <name>SNI.ADPT_CD</name>
    <value>RAT_CD</value>
    </variables>
    Hope this helpful.
    Regards

  • Issue with java mapping in a multi-mapping scenario

    Hi
        We have  a 1:n multiple mapping scenario in XI and the source is R3 proxy and target side is files. So, creating multiple file from a single message from R3 .
    R3 --> XI --> Multiple files
    Structure of the output of the multi-mapping is
    - <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
    - <ns0:Message1>
    <Transaction>
    </Transaction>
    <Transaction>
    </Transaction></ns0:Message1>
    </ns0:Messages>
    wherein each Transaction node represents a file.
    Now, we need to introduce a constant /string like
    <!DOCTYPE Transaction PUBLIC \"-//XXXXXX//DTD BatchReceiptAuthorization//EN\" \"http://dtd.XXXXXXX.com/dtds/ReceiptAuthorization.dtd\">
    on each of the files at the very beginning - i.e within each transaction node , in the above structure, we need the above DTD string to be written.  To do this, we added a java mapping as the second mapping after the message mapping that creates this string. Is this the right approach and would it produce what we are expecting ?
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.util.Map;
    import com.sap.aii.mapping.api.StreamTransformation;
    import com.sap.aii.mapping.api.StreamTransformationException;
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    import com.sap.aii.mapping.api.DynamicConfiguration;
    import com.sap.aii.mapping.api.AbstractTrace;
    public class ModifyRootAndDelay implements StreamTransformation {
         AbstractTrace myTrace;
    public void execute(InputStream input, OutputStream output) throws StreamTransformationException {
              try{
                   BufferedReader reader = new BufferedReader(new InputStreamReader(input));
                   String NameSpacePrefix = "<!DOCTYPE Transaction PUBLIC \"-//innotrac//DTD BatchReceiptAuthorization//EN\" \"http://dtd.innotrac.com/dtds/ReceiptAuthorization.dtd\">";
                   String sLine = null;
                   StringBuffer XmlMsg= new StringBuffer();
                   String Result,PayloadBody;
                   int indexOfFirst;
                   while ((sLine = reader.readLine()) != null) {
                        XmlMsg.append(sLine);
                   String StartingTag = XmlMsg.toString();
                   indexOfFirst = StartingTag.indexOf("<MerchantID>") ;
                   PayloadBody=new String(XmlMsg.substring(indexOfFirst));
                   Result=NameSpacePrefix.concat(PayloadBody);
                   output.write(Result.getBytes());
              /*     Thread.sleep(200000); */
              }catch(Exception e){
                   myTrace.addWarning("Exception raised in the JavaMapping:modifyNamespace.java""\n The Exception Message: " e.getMessage());
                   throw new RuntimeException(e.getMessage()) ;
            }     public void setParameter(Map param) {
              myTrace = (AbstractTrace) param
                        .get(StreamTransformationConstants.MAPPING_TRACE);

    Hi XI Gurus
                       In my scenario, I sent the inputstream that is being passed to the Java execute method - to trace and I see that the whole of the xml file - as shown below  - which is the output of message mapping ( from the first mapping step ) in sent to the execute method of the java mapping a single call
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
    <ns0:Message1>
    <Transaction> </Transaction>
    <Transaction> </Transaction>
    </ns0:Message1>
    <ns0:Messages>
    So, I modified Java mapping program to look for multiple occurences of <Transaction> tag and prefix them with my constant DTD Literal - which is the primary reason , why I had to use Java mappings after the message mapping.
    Now, I get an error is XI- SXMB_MONI
    - <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="MAPPING" />
      <SAP:P1>unexpected symbol; expected '<', '</', entity refe</SAP:P1>
      <SAP:P2>rence, character data, CDATA section, processing i</SAP:P2>
      <SAP:P3>0</SAP:P3>
      <SAP:P4>113</SAP:P4>
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>The exception occurred (program: CL_XMS_MAIN===================CP, include CL_XMS_MAIN===================CM00A, line: 609)</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Should I create multiple outputs - as many as the numberof target split files ( of type outputstream ) from the execute method in the java program ?

  • Create multiple idoc with multiple receivers based on value mapping table

    Hi,
    Scenario: 
    Step1 : sender sends a finance doc iin the form of an idoc. This idoc will have multiple line items based on profit center. Do determine the value of receiving comp code(header field) n receiving system(logical sys name) value mapping table has to be used.
    Solution so far: I can put an rfc lookup for fetching receiving comp code from mapping table with i/p paraameter as profit center . And split the incoming idoc based on comp code value by using split by value. Now I need your advise 2 take this further.
    Issue 1 : say the incoming idoc has 4  line seg wid 4 diff profit center
    Profit center.       Rec comp code.   Recv sys
    P1.                       C1.                        R1
    P2.                       C2.                        R1
    PS.                       C2.                        R1
    P3.                       C3.                        R2
    Nw using this info, I want 3 diff idocs to be created for each unique comp code.
    Idoc 1 : for C1 wid one line item + 1 for reconsilation ( to be generated additionally)
    Idoc2 : for C2 wid 2 line items + 1 for reconsilation
    Idoc 3: for C3 wid 1 line item + 1 for reconsilation
    Idoc 1 and idoc 2 shud be sent to R1.
    Idoc 3 shud be sent to R2.
    Kindly advise on this

    Hi experts,
    U all r pretty close, but let me put this more clearly.
    Step1: create multiple idocs based on unique comp code - I'm able to do this using rfc lookup n split by value. So I get 3 idocs each for c1, c2 n c3.
    Nw as per the values from value mapping table.
    Idoc for c1 contains 1 line seg.
    Idoc for c2 contains 2 line segs.
    N idoc for c3 contains 1 line seg.
    steps2 n 3,  where I do not have a confirmed solution yet n need ur advise.
    Step 2 : for each idoc generated I need 2 create n additional segment, mapping 4 which will be based on the values in the original segments for that idoc.
    In d above scenario, idoc for c1 contains 1 line seg, nw I want 2 add one more seg to it. The amount and pisting key values in this segment wud be calculated based on the values of the amount and posting key belonging to the original segment in this idoc.
    Similarly for idoc for c2 there are 2 segs, nw I need one more, means 3 in allm
    Hence for idoc for c3, 1 orig already present + 1 more. = total 2.
    Nw I need ur advise on how 2 generate this additional seg in each idocm
    Step 3: when all dese 3 idocs are generated, ( in this case itz 3, in real time it can be n), I need to find their respective receivers using rfc lookup n then based on the receiver send 2 resp recvng systm
    Nw how do I do this?
    Please explain with examples if possible 4 bettr understanding.
    u2020ђąu03B7kўu03C3u03C5 in advance.

  • Multi-Mapping without BPM (Multiples IDoc To one EDI output?)

    Hi all,
    We are currently working for a client that want us to create, based on a multiple IDoc (an idoc that contains data of more than one idoc) only one output
    Meaning that we have to do a mapping that based in this multiple input generates only one output that cointains all that data in only one flat file
    example:
    Idoc: PERX2002.PAYTEXT generates an EDI 820 with this structure:
    LIST
    /S_ISA (first input)
    /S_ISA (second input)
    At this moment we tried to use "Collect IDoc" option in SAP, and as seen in other blogs we changed the ocurrency of the message mapping to "0.unbounded", but when we release several idocs (WE14) we only get multiples output files (3 idoc collected and released give us 3 different edi files) instead only one edi file with all the data gathered together as ISA segments
    In this required process possible???
    Thanks in advance

    As you can see in the following pics..
    http://img201.imageshack.us/img201/8352/process1xz1.jpg
    http://img244.imageshack.us/img244/4954/processvc9.jpg
    i already made those changes, the multi-mapping is set, and also the option for collecting the IDocs and the "enhanced" option in the Integration Directory, but when i release all the idocs i still get multiple outputs (2 files), instead one file with all the gathered data
    Could someone tell me if  i'm missing some step?
    Thanks for your time
    Edited by: Alexis Alanis on Jan 7, 2008 7:24 PM

  • ORA-01461 Error when mapping table with multiple varchar2(4000) fields

    (Note: I think this was an earlier problem, supposed fixed in 11.0, but we are experiencing in 11.7)
    If I map an Oracle 9i table with multiple varchar2(4000) columns, targeting another Oracle 9i database, I get the ORA-01461 error (Can't bind a LONG value only for insert into a LONG).
    I have tried changing the target columns to varchar2(1000), as suggested as a workaround in earlier versions, all to no avail.
    I can have just one varchar2(4000) map correctly and execute flawlessly - the problem occurs when I add a second one.
    I have tried making the target column a LONG, but that does not solve the problem.
    Then, I made the target database SQL Server, and it had no problem at all, so the issue seems to be Oracle-related.

    Hi Jon,
    Thanks for the feedback. I'm unable to reproduce the problem you describe at the moment - if I try to migrate a TEXT(5), OMWB creates a VARCHAR(5) and the data migrates correctly!! However, I note from you description that even though the problematic source column datatype is TEXT(5), you mention that there are actually 20 lines of text in this field (and not 5 variable length characters as the definition might suggest).
    Having read through some of the MySQL reference guide I note that, in certain circumstances, MySQL actually changes the column datatype specified either at table creation time or when interfacing with other databases ( ref 14.2.5.1 Silent Column Specification Changes and 12.7 Using Column Types from Other Database Engines in the MySQL reference guide). Since your TEXT(5) actually contains 20 lines of text, MySQL (database or JDBC driver .... or both) may be trying to automatically map the specified datatype of the column to a datatype more appropriate to storing 20 lines of text.... that is, to a LONG value in this case. Then, when Oracle is presented with this LONG value to store in a VARCHAR(5) field, it throws the ORA-01461 error. I need to investigate this further, but this may be the case - its the first time I've see this problem encountered.
    To workaround this, you could change the datatype of the column to a LONG from within the Oracle Model before migrating. Any application code that accesses this column and expects a TEXT(5) value may need to be adjusted to cope with a LONG value. Is this a viable workaround for you?
    I will investigate further and notiofy you of any details I uncover. We will need to track this issue for possible inclusion in future development plans.
    I hope this helps,
    Regards,
    Tom.

  • How does receive() work with multiple receivers/subscribers?

    Hi,
    actually I'm using the JMS API to create a lightweight MQ service for Java ME tailored for my purposes. I'm generally familiar with JMS but I have some question to which I couldn't find the answer neither in the API spec nor on google. I think that many of you can answer it.
    At first, is it possible to create multiple receivers on the same queue (same or different sessions)? Generally, I though a queue can only have one consumer since the call of receive() will delete the message from the queue so that a theoretical second consumer couldn't get the message anymore. But int the APi docs, it doesn't explain what happens if you call createReceiver() multiple times. Will it throw an exceptions?
    A similar question goes for topics. A topic is supposed to support multiple subscribers. When subscribers register listeners, I understand it. But what if they don't and instead call receive() which is available because TopicSubcriber extends MessageConsumer. Is the message also deleted from the queue or is receive not supported for topics and will throw an exception? Will it remain until all subscribers have either called receive on that message or have been notified by onMessage? If yes, what happens if a subscriber doesn't call receive. Does the message stays there forever? What if new messages coming in, will the queue wait until the previous message is completely consumed?
    From my point of view, I tend to only allow one receiver for a queue. If the receiver calls receive, the message will be deleted. For topics, I would only allow listeners, not receive() calls. Once the message has been delivered to all subscribers it will be deleted. If I'm misunderstanding the concepts, please correct me!
    Thanks a lot!

    At first, is it possible to create multiple receivers on the same queue (same or different sessions)? Generally, I though a queue can only have one consumer since the call of receive() >will delete the message from the queue so that a theoretical second consumer couldn't get the message anymore. But int the APi docs, it doesn't explain what happens if you call >createReceiver() multiple times. Will it throw an exceptions?If you have multiple receivers on the same queue then the JMS provider will distribute messages between the two receivers on the basis that each message goes to only one receiver. The exact distribution of messages depends on the JMS provider, and is not mandated by the JMS specification.
    A similar question goes for topics. A topic is supposed to support multiple subscribers. When subscribers register listeners, I understand it. But what if they don't and instead call >receive() which is available because TopicSubcriber extends MessageConsumer. Is the message also deleted from the queue or is receive not supported for topics and will throw an >exception? You can consume messages from a topic using either a MessageListener or by calling receive(). They both work in the same way.
    Will it remain until all subscribers have either called receive on that message or have been notified by onMessage? If yes, what happens if a subscriber doesn't call receive. Does the message stays there forever? What if new messages coming in, will the queue wait until the previous message is completely consumed?Essentially, if you send a message to a topic then it will be delivered to every subscriber, irrespective of whether that subscriber is synchronous (calling receive() or asynchronous (supplying a MessageListener).
    In both cases, the consumer might not actually be ready to accept that message just yet (the applicaiton might not have called receive() yet, or onMessage() is still processing a previous message). In this case the message will be held within the JMS provider in an internal queue of messages designated for that specific consumer. Logically speaking, there's an internal queue for each consumer, rather than an internal queue for the whole topic, though how the provider actually implements this will vary. Note that the concept of each subscriber on a topic having its own internal queue is not one described in the documentation, it's just a way for me to explain it.
    If the consumer closes before it actually receives the messages waiting in its queue, and the subscriber is non-durable, then the internal queue will be thrown away. If the subscriber is durable then the internal queue continues to exist and continues to accumulate messages even after the subscriber has closed.
    From my point of view, I tend to only allow one receiver for a queue.
    If the receiver calls receive, the message will be deleted. For topics, I would only allow listeners, not receive() calls.
    Once the message has been delivered to all subscribers it will be deleted. If I'm misunderstanding the concepts, please correct me!Yes, you have slightly misunderstood this :-) I hope my explanation above helps clarify this.
    Nigel

  • Multi-Mapping - JDBC receiver -  Multiple stored procedure - How to sequence?

    Hi Folks,
    We have 7.1 .Done multi-mapping , single source mapped to 5 different stored procedures.
    The challenge we are facing here is , these stored procedure is not working sequentially .
    i.,e  for e.g., 2nd Stored Procedure should start only when first Stores procedure completely finished its turn.
    But third procedure getting completed before1 st stored procedure completes .
    Highly appreciate if any views on this ? How to sequence and make sure second will start only when first SP complete  ?
    -- Shiva

    Hi ,
    Thanks for your reply. all stored procedures are asynchronous one.
    If we go for ccBPM , do we need to put wait step ?
    - Here we dont know how much time each procedure takes to complete. Requirement is another procedure has to start only when the previous one completes.
    --Shiva

  • Problem while using Parameters in Message Mapping in Multi Mapping Scenario

    Hi,
    I am working on a scenario in PI 7.1, in which I need to pass output of Message Mapping as an input to ABAP Mapping.
    In Message Mapping, I have used standard RFC Lookup function to call a Function Module from ERP system. For using RFC Lookup function, I have created a Import Parameter of Category "Adapter", and Type "RFC" in the Signature Tab of Message Mapping.
    In Operation Mapping, I have specified both the mappings (that is., Message Mapping and ABAP Mapping).
    In Interface Determination, I have also assigned a value to the Importing Parameter.
    But whenever I trigger a message, it fails and gives message "The input-parameter Rec_RFC_ERP does not exist." (Rec_RFC_ERP is my Input Parameter name).
    When I am using only Message Mapping in Operation Mapping; it's working absolutely fine that means something needs to be done with ABAP Mapping.
    Any help will be highly appreciated.
    Regards,
    Varun

    Rec_RFC_ERP is this the name of your RFC lookup adapter?? Did you test your mapping in Design time using the RFCAdapter dropdown???
    Mapping Enhancement - RFC lookups in 7.1
    /people/jin.shin/blog/2008/02/15/sap-pi-71-mapping-enhancements-series-graphical-support-for-jdbc-and-rfc-lookups
    Regards,
    Siva Maranani

  • Mapping Runtime with multiple gateway registration

    I need a help about increase mapping performance.
    I have add new Java server on new server(I mean HW).
    I wonder if ABAP(I mean RFC Gateway with JCo) can recognize this "New" Java server.
    I reference following...
    http://help.sap.com/saphelp_nw04/helpdata/en/1c/ba295ee20fcd41b6804f1bc602de68/content.htm
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/3.0/sap exchange infrastructure tuning guide xi 3.0.pdf
    -->See section "Mapping Runtime"
    I have a following XI3.0 system.
    EOne central Instance(ABAP and Java) on one server(HW).
      Java have one J2EE Dispatcher and one Server.
    EOne dialog Instance(ABAP and Java) on one server(HW)
      Java have one J2EE Dispatcher and one Server.
    So "Java" have two Server processes on each hardware.
    You know when mapping, ABAP connect to Java with JCo.
    In ABAP side, I defined as AI_RUNTIME_JCO_SERVER(SM59).
    In Java side, I defined as AI_RUNTIME_XI1(visual admin)
    They have set same "Program ID" and test connection well.
    Now I add new Java server node.
    I can see "New" Java server tree in visual administrator.
    Can I defined RFC Destination "AI_RUNTIME_XI1" to this New one? (This is same destination.)
    Tunning Guide said, "load distribution by multiple gateway registration".
    What's mean?? I have only one Gayteway(I mean AI_RUNTIME_JCOSERVER)...
    Help.sap.com said, "The RFC Engine service can register under one name to one particular gateway. To register to another gateway, another name has to be used. ".
    What's mean?? Can XI ABAP Gateway recognize "another name"?
    I confuse a bit...
    regards,

    Hi All,
    In addition to the above, if mapping is tested within ESR there is no issue. The problem is happening only during runtime.
    BTW, When we applied the note 1838921 we upgraded the Adapter Framework from SP09 to SP12.
    Could this be an issue?
    Regards,
    Sudheer

  • IDOC to File scenario with multiple directories on same FTP.

    The scenario is IDOC -- to FTP (Receiver file adapter). Based on the condition in the sender IDOC say if EIDKA01-BSART = Y than the directory path on FTP server is 'A' ELSE 'B'.
    There is only one reciever service defined for the FTP server in the Integration Directory. Its not multiple receiver scenario.
    How do we do this?
    Thanks

    Hi !
    Just create an UDF in graphical mapping and put this code inside:
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    //get Key of Directory
    DynamicConfigurationKey keyD = DynamicConfigurationKey.create( URLFile, "Directory");
    //Replace value of Directory
    conf.put(keyD,dir);
    where "dir" contains the destination path depending on the EIDKA01-BSART value. When this code executes, if the receiver file adapter has the adapter-specific attributes (directory) checked, then it will set the "directory" value to the one specified in the "dir" variable.
    Regards,
    Matias

  • Multi-Counter Plan with multiple Equipments

    Hello,
    We would like to track maintenance costs at Equipment level.  In multi-counter maintenance plan, is there a way to enter multiple equipments in one mainteance plan?
    Thanks a lot,
    Venu

    Dear Venu,
    In multi counter plan, only one equipment may be assigned, as correctly observed. However, you may assign the same equipment with different task list, depending on the cycle set, so that maint order is generated with required operations applicable for that cycle.
    Eg: Cycle set 1   100Hrs/1month
                          2    500Hrs/3Month
                          3    1000Hrs/6 Month
    Create task lists as per above cycle sets and for each cycle set assign the same equipment, but with different task lists.
    This reduces the number of maintenance plans for a given equipment. This is particularly useful for vehicle management, where the running KM and time are the common counters.
    James Prabaharan

  • Multi-camera audio with multiple tracks

    In Premier Pro 2 I was somehow able to use the automation features to adjust levels throughout my videos on multiple tracks, and that mix would flow through to the multi-camera sequence.
    It didn't work in Premier Pro 3.1.1 when I just tried it. I then noticed that the help file says "In order to retain audio from more than one track simultaneously, mix all the desired tracks to a single track in the source sequence, select the resulting audio track, and deselect the Audio Follows Video option."
    I opened my old projects in 3.1.1 and the multiple tracks still play in the multi-camera sequence.
    1: How was I able to do this before and can I still do it?
    2: If I must mix all tracks to a single track in the source sequence, how do I do that? I can't figure that out.

    You have two choices, either you can hear the audio for the selected camera, or just audio track 1. You can't hear all audio tracks simultaneously without a little tweaking.
    Once you're done with the multicam cut, place another instance in the new sequence on tracks 2. Then delete the video from track 2, and move the audio from track 2 onto track 1. This will allow all audio tracks from the original sequence to be heard.

  • Multi-mapping ... multiple records works, one record doesn't

    I'm using JDBC to select rows from an external Oracle database, XI receives the message, splits it into multiple messages (one for each record returned) and, using RFC/BAPI, takes each record and writes it to an SAP table on an SAP system.  I'm using the RB_SPLIT option in my Interface Determination and in my Interface Mapping I'm using Source occurrences = 1, Target occurrences = 0..unbounded. 
    This works GREAT ... as long as there is more than one record returned from the select statement in the JDBC setup.  If the select statement only returns one record, nothing gets transferred.  If it's any amount of records more than 1, it works perfectly.
    Why won't it process one record?  What can I do to get it to process one record, without messing up the great job it does for more than one record?
    Thanks!

    Hi Michael -
    I have a similar setup (at least on the sender side) and whether I have multiple records returned or just one, I'm getting my expected result.  FYI, I'm using a file receiver.
    I would first take a closer look at your mapping.  Get the one record XML that is sent to the Integration Server and test your message mapping in the IR.  Remember to put it in between the tags below:
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
       <ns0:Message1>
       </ns0:Message1>
    </ns0:Messages>
    Regards,
    Jin

  • Creating multi-page document with multiple templates

    Hi,
    I am new to Pages and am attempting to create a photo book that I can export as a PDF and have printed through an online service. I have successfully created multiple templates in Pages that I want to use in my book, but cannot figure out how to create a new page based on an existing template. If I select "New" or "New from Template Chooser" I end up with a brand new document, not a new page in my existing document. If I select Insert --> Pages, I am only given the choice to insert a Text or a Blank page. How do I insert a new page based on a template? Or, how do I apply a template to a blank page?
    Thanks very much,
    Eric

    Okay, I have figured out a way to accomplish my goal. I have my master Pages document that I am adding pages to by:
    1. File --> "New from Template Chooser"
    2. Selecting my template
    3. A new document is opened
    4. I add my photo and custom text
    5. Copy the new page from the Pages area in the left nav
    6. Paste the new page back into my master document
    This works, although is a bit cumbersome. Would much prefer to be able to simply add a page in my master based on an existing template, but I still don't see how to do that...

Maybe you are looking for

  • IOS6: Beats Wireless Does Not Work Properly With Bluetooth

    Half year ago, I spent 400 USD of my hard-earned money on a Beats Wireless headset (v2).... LOVE that headset... great sound when playing music and very good sound quality too when talking on the phone (iPhone 4S). However, since "upgrading" to iOS 6

  • IPad/iPhone 4s will not update

    I have a new ipad2 and iphone 4s running 5.0.1 I have just tried to update to ios 5.1 and iTunes fails to connect with the server to update. I have updated Itunes and rebooted but with no luck. Does anybody know what the problem could be? Barry

  • SCA's required for KM

    Hi Experts , I am using nwds 7.3 and portal 7.4  My requirement is to create the Webdynpro java application which  download documents from the KM.     I didnt find the document for the 7.3 version, i came to know that i 7.3 instead of bc.rf.framework

  • Tiger issues with Zip disks

    I opened Texedit and created a document. Then I dragged and drop the file to a text clipping to my Zip disk (mac OS standard format). I received a message stating that the file was too long or something to that effect. I then dragged and dropped the

  • Importing XML to Oracle

    Hi, I would like to import XML data into Oracle 10g I have already done tests using SQL Loader or DBMS_XMLSAVE and I have no problem to import into a single table. Example: University table in Oracle: Id Number(2) Name Varchar(20) and the following X