Fastest Mapping

Hi all,
we have to post 2000 IDOC's at once to 2000 XML files. For the customer "performance" is a big issue. He wants to sent the IDOC's as fast as possible. We have allready used the "XI tuning guide" and set off the IDOC acknowledgements.
Now we are using ABAP mapping because we think this is the fastest way to do the mapping, but is this really the fastest mapping?
Now we process 2000 IDOC's in 50 minutes. Do you guys have anymore tips for tuning the performance. Please note that tuning the hardware is out of the question :).
TIA
Peter.

Hi Naveen,
if I get your point, you are saying that we will get 0..N IDOC's from the R3 system, in the graphical mapping we will have to map this to 0..N receivers (with the control for the correct plants).
We have the following issue's:
-if we sent from the R3 system the IDOC's in a package, our XI IDOC adapter automatically splits it into individual IDOC mesagges, is there a way that the IDOC adapter will not do this so we can work with packaging?
-the customer wants to have for 1 IDOC message 1 receiver XML file. I presume that with packaging this is not possible? (or you have to work with BPM wich slows the system???)

Similar Messages

  • Graphical mapping is Java Mapping??

    Someone told me that ABAP mapping is faster than Java mapping cause it runs on ABAP stack straight away, where as Java mapping runs on Java stack and then transfers the result to ABAP stack whic reduces effieciency. Does that mean me should prefer ABAP mapping over Graphical mapping as that is also java mapping in the background??
    Regards,
    Ashish

    according to SAP, the graphical mapping (which generates java code) is the fastest mapping and hence the first choice. Personally I prefer XSLT even though it is said to be the slowest because of the way XSLT runs the mapping. However, I never experienced any problems but found it much easier to handle than the graphical mapping especially when the mapping gets a bit tricky and you have to work with many queues.
    I doubt that the Abap is necessarily faster because it depends how you write your source code, whereas the graphical mapping is already optimized
    Cornelius
    null

  • Ovi maps - is that really the fastest route?

    I am using the Ovi maps through my N8. 
    I recently travelled from Barrow to Newcastle and when I punched this into Ovi maps it said it would take over 3 hours.  It never takes that long and when I looked at the details of the route it was not taking me my normal way.
    I ignored the Ovi maps directions and it eventually it re-routed and cut 30 minutes off the time.
    This has happened several times.  After changing to fastest route and optimized route Ovi maps still takes me the oddest way to most destinations.
    Has anyone else come across this?  If I cannot resolve it I may be going back to my Tomtom.
    Thanks
    Garry

    Hi,
    I tried to reproduce your routing issue with the online maps from Ovi, Google and Bing are giving me the same route, which is this one:
    http://maps.google.com/maps?f=d&hl=en&saddr=52.2434,0.580748+to:53.0088,-2.22857
    Could you please explain where the optimal route passes by? you can also send directly to me.
    Thanks!
    Martin
    Moderator's note: Email address removed. It is not wise to publish your personal information on a public forum.

  • What's the fastest way to put items of a list in a map?

    say i have a list of items and i would like to put them in a map.
    what's the shortest way to do that?
    or i should just iterate the list and put every item in a map? is there a command such sa
    list.toMap ???
    thanks

    say i have a list of items and i would like to put
    them in a map.
    what's the shortest way to do that?
    or i should just iterate the list and put every item
    in a map? is there a command such sa
    list.toMap ???
    And what do you think such a method would do, other than iterating over the list?

  • Fastest Way To Find String In Map?

    problem: basically im trying to match the value of one Map with the key of another. my thinking is that this requires me to loop through the first Map and for each value through the second Map and match up the key to it. heres my code so far:
    private static Map equiJoin(Map relation1, Map relation2) // The 2 maps
    Map resultRelation = new TreeMap();
    Iterator keys1Iterator = relation1.keySet().iterator();
    Iterator values1Iterator = relation1.values().iterator();
    while (keys1Iterator.hasNext() ) // Loop through relation1
    String primaryKey1 = (String) keys1Iterator.next();
    String foreignKey1 = (String) values1Iterator.next();
    List list = new ArrayList();
    Iterator keys2Iterator = relation2.keySet().iterator();
    Iterator values2Iterator = relation2.values().iterator();
    while (keys2Iterator.hasNext() ) // Loop through relation2
    String primaryKey2 = (String) keys2Iterator.next();
    String foreignKey2 = (String) values2Iterator.next();
    if(primaryKey2.equals(foreignKey1))
    list.add(foreignKey1);
    list.add(foreignKey2);
    resultRelation.put(primaryKey1, list);
    return resultRelation;
    im trying to come up with ways to make this faster, perhaps by turing the second while loop/linear search into a binary search.
    any thoughts would be appreciated.

    problem: basically im trying to match the value of one
    Map with the key of another. my thinking is that this
    requires me to loop through the first Map and for each
    value through the second Map and match up the key to
    it. heres my code so far:
    private static Map equiJoin(Map relation1, Map
    relation2) // The 2 maps
    Map resultRelation = new TreeMap();
    Iterator keys1Iterator =
    relation1.keySet().iterator();
    Iterator values1Iterator =
    relation1.values().iterator();
    while (keys1Iterator.hasNext() ) // Loop through
    relation1
    String primaryKey1 = (String) keys1Iterator.next();
    String foreignKey1 = (String) values1Iterator.next();
    List list = new ArrayList();
    Iterator keys2Iterator =
    relation2.keySet().iterator();
    Iterator values2Iterator =
    relation2.values().iterator();
    while (keys2Iterator.hasNext() ) // Loop through
    relation2
    String primaryKey2 = (String) keys2Iterator.next();
    String foreignKey2 = (String) values2Iterator.next();
    if(primaryKey2.equals(foreignKey1))
    list.add(foreignKey1);
    list.add(foreignKey2);
    resultRelation.put(primaryKey1, list);
    return resultRelation;
    im trying to come up with ways to make this faster,
    perhaps by turing the second while loop/linear search
    into a binary search.
    any thoughts would be appreciated.Yep. The inner loop is not needed. Just use Map api.
    Object value2 = relation2.get(primaryKey1);
    // and check for null for value2, if null don't add to the list, if not null, do a resultRelation.put
    btw, you list add logic:
    if(primaryKey2.equals(foreignKey1))
    list.add(foreignKey1);
    list.add(foreignKey2);
    resultRelation.put(primaryKey1, list);
    } why do you add both foreignKey1 and foreignKey2 to the list when they are equals. Since they are equals, are they redundent?
    --lichu                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Suggestions for improvements to Maps 2

    I thought I'd put down a few ideas on improvements to Maps and let other people add / comment
    Routing:
    I like the idea of 'optimised' routing combining shortest and fastest but it would be great to be able to control the weighting given so you could, for instance, configure for a mostly short route but one that is still quite fast. As another idea, it would be good to see the alternate routes created by the short / fast / optimised options all together. Either shown on the map or at least with some simple statistics - distance, estimated time, number of motorways / a-roads / b-roads / other roads as a percentage of total journey. I find that in the country the 'shortest' route will inevitably result in being sent down very narrow lanes while in the city the shortest route is often a very good route. Being able to see the options and adjust the optimised weightings would be great for coping with this difference.
    Estimated travel time / fastest route:
    It would be good to gather info from Maps users in your area (anonymous, of course) to identify actual road speeds at different times of day. This info should be very easy to collect over time as Maps is 'online' (unlike, say, a TomTom) and would be a great feature-add. Could also help with traffic info and would be even better if you could set a 're-route if other users appear to have been travelling slowly on this road recently' option with controllable sensitivity and 'recent' duration. Maybe one for the more distant future when more people have Maps but still worth collecting the time-of-day / speed data starting now
    Recent route logs:
    I'd like to be able to look at recent routes (not ones I've saved specifically but just those calculated by the system to guide me) and check actual travel time, mean speed etc. Maybe even a Sports Tracker style export to Google Earth? Maybe just a 'last 5 trips' style history.
    Nearby friends:
    Maybe just with Nokia Maps users but preferably with any user of any device capable of publishing location data to the net. Basically, showing a list / map icons of friends of yours so you know who is close.
    Shared POIs:
    The ability to publish POIs (such as your home, your fav. restaurant etc.) - maybe in an RSS stream - that friends with Maps can subscribe to. Also the ability to publish a POI on a web page so it can be downloaded on the phone or via a pc. Very useful for clubs and societies.

    Because I don't want to necessarily change the MainStage patch...I simply want to use different "parts"of a single patch.
    For example, I might have a single main stage patch with 4 channel strips. The first one has strings, the second one has choir, and the third and fourth have both of them (using aliases if the sounds are internal, or MIDI if external). The first strip listens on MIDI channel 1, the second on 2, the third AND fourth listen on 3. Now I can trivially (and inexpensively) switch from strings to choir to both.
    Further, I might have other channel strips on that patch that are listening to different controllers.

  • Fastest algorithm to append a id to an ipaddress depending upon the net id

    Hi Guys,
    I wanted to know what will be the fastest algorithm to append a id to an ip address depending on the net id. I am using Java by the way. For example - Suppose I have a list of ids and corresponding net id i.e.
    ID: 23 net ID: 10.44
    ID:12 net ID: 10.56
    ID:1 net ID: 10.70
    ID: 78 net ID: 10.44.34.33
    Now, if I receive a million records having different source IPs, what will be the fastest way to know to which ID it belongs. For example, say I receive a record having source IP 10.44.23.33 then I have to compare to all the net IDs and see what ID it will belong to; in this case, result need to be -> 23::10.44.23.33 because net ID:10.44 has ID 23. Suppose, I get a record having source IP 10.44.34.33 then result need to be -> 78::10.44.34.33. I hope, I am clear. Performance issue is if I have million records and list comprising say even 1000 ID and net ID entries then if I do say, compare the source IP to each entry of the list then searching will take O(n). Not sure though. I know, I can convert net ID to the range of IP addresses. Take ID:12 for example. The number of IP addresses that can belong to that network type will be from 10.56.0.0 to 10.56.255.255. Convert these numbers to long and convert the source IP also to long and see if it is between the range. But, this will take a long time even if I do binary search, am I right? Is there any way I can resolve the issue in a nifty way, say, using binary manipulation such as ORing or ANDing something. Would anyone please let me know? Thanks.
    Waiting for your replies.
    Edited by: wannabehacker on Jun 10, 2009 8:06 AM
    Edited by: wannabehacker on Jun 10, 2009 8:07 AM

    wannabehacker wrote:
    Hi Jos,
    Thanks for your reply. But, don't you think this might have performance issue in worst case scenario or even in not so worst case scenarios. Suppose, I have million records and half of them do not have corresponding ID and net ID's in the list. Then if the list has 1000 entries but nothing for the source IPs received, the map will be parsed 1/2 million X 1000 times X 4. Am I missing something.Yup, a HashMap can find a key in order O(1) which is a whole lot better than searching a list of 1000 elements. Your calculations reduce to 1,000,000 X 1 X 4 at worst for all your records.
    kind regards,
    Jos

  • Fastest way to removeAll

    I need to remove quite a few entries from a cache that match a certain criteria. There is cache.putAll(Map) for en-masse cache loading, but there is no equivalent cache.removeAll(Set keys).
    What is the fastest way to achieve this? I am thinking this:
            Filter f = new EqualsFilter(...)
             cache.invokeAll(f, new InvocableMap.EntryProcessor(){
                   public Object process(Entry entry) {
                        entry.remove(false);
                        return null;
                   public Map processAll(Set setEntries) {
                        Iterator iter = setEntries.iterator()
                        while(iter.hasNext()){
                             Entry entry = (Entry) iter.next();
                                   entry.remove(false);
                                    return null;
             });Is there a faster way?
    Thanks
    Ghanshyam

    Hi Ghanshyam,
    for non-transactional replicated caches, you can simply use the
    cache.keySet().removeAll(keys)
    for non-transactional partitioned caches, you can use either the same (provided you use a recent version, in older versions it had some performance impact).
    Since 3.1 you can also use the following:
    cache.invokeAll(keys, new ConditionalRemove(AlwaysFilter.INSTANCE));
    For transactional caches you should not call the keySet().
    For transactional caches, depending on the isolation level, you can iterate them and remove them individually (for GET_COMMITTED or EXTERNAL).
    For optimistic transactional caches with a transaction validator registered and having REPEATABLE_GET or SERIALIZABLE isolation level, before the iteration and removal you should also get all entries for the keys with transactionMap.getAll(keys), so they are enlisted to the transaction validator with a bulk read, and not with individual reads upon remove.
    This advices might not be the most optimal, but I believe, they are more or less so.
    Best regards,
    Robert

  • LSMW Source and Field Mapping

    Hi,
      I'm trying to use the LSMW.  What is the fastest way to maintain the source field and relationship?? Is it possible to define the source field and length in a text file and load it in the LSMW??
    Regards,
    Kit

    Hi Kit,
            u can create source fields in faster way.
    menupath
    In the 3rd step i.e., Maintain source fields
    source fields -> table maintenance
    here u can fill all the fields at a time.
    u can also maintain the fields in a file and copy and paste them in the Table maintenance .
    In 5th step i.e.,  Maintain Field Mapping and Conversion Rules
    Extras -> Auto field Mapping
    Now u get the auto field mapping setting pop-up.
    click ok.
    Now u Get the auto field mapping proposel pop-up.
    Here check Target field and Source field and click on Accept proposel push button for all the fields.
    with this the source and target field mapping are done automatically.
    reward if helpfull
    raam

  • Can you choose a different route in maps?

    I searched for directions in the maps app and it shows me a route that is way out of the way and is 16 hours compared to mapquest telling me 12 hours and a more direct route.
    I know that online at google maps you can choose from several route options, can we do this on the iPhone app?
    Thanks for anybody's help!

    oh wow, that's pretty disappointing. I'm always using Google maps at work to find places and then dragging the route around different streets to try to find the shortest distance or what *I think* will be the fastest route. That's a pretty major oversight to not let you simply drag the route around like you can on the real version.

  • How to generate map.xml,toc.xml, help.hs file

    Hi All,
    In our application, we have all the help written in html files. I have the steps to configure ohw-config.xml, web.xml . We want to map the html help based on the application page name.
    Can anyone let me know the good tool to generate map.xml,toc.xml for the html files.

    try magichelp.
    it is multi-user help authoring tool,
    currently Support Oracle help .
    Home:http://www.gethelpsoft.com
    Download from:http://www.gethelpsoft.com/download/mhtrial.exe
    MagicHelp is multi-user help systems and documentation tool,it is the fastest, easiest way to create professional Help systems and documentation.
    Support export format:CHM/MsHelp2.x/Word/WebHelp/JavaHelp/OracleHelp/EclipseHelp...
    Support import format:COM TypeLib/FileSystem/...
    Team Working feature makes develop-team works more orderly, efficiently, and cost savely, the quality of software document will be increased. MagicTopic feature enables you extending MagicHelp to other fields, such as project management, requirement management and transaction assistance. One can develop different kinds of extensions to extend application of MagicHelp, e.g. database tables design.

  • Reading only a subset of keys from a map

    Hello all, I would appreciate a pointer with regard to maps. Here is my (simplified) requirement:
    I have a list of key and value parings that currently reside in a hashmap. The map looks something like this;
    Key ---------- Value
    Monday ---------- Doctor appointment
    Monday ---------- Grocery shopping
    Tuesday ---------- Hair appointment
    Tuesday ---------- Visit grandma
    Tuesday ---------- Make car payment
    Wednesday ---------- Paint garage
    Wednesday ---------- Dinner with George
    My actual requirement has different terminology, but the principle is the same.
    The key value is not unique, and the map will eventually have many thousands of entries. I need to read through my list very often in my application, and I want to be able to read only those entries for a given day and no others as this will significantly hurt the performance if I do.
    Could someone kindly give me a thought or two on the best (and fastest) way to achieve what I need. I have searched various sites looking for a clue, but I can't see anything, which is odd as I would have thought this was a common need.
    Many thanks in advance,
    Steve

    Maybe, you should have a look at the two links below,
    which will lead you to in-memory/embedded RDBMSes
    that easily can be integrated into your application.
    As they hold data in-memory, queries will be really
    quick. I did not check for persisting to a foreign
    DBMS, though. And neither of them is an OODBMS.
    http://www.h2database.com
    http://hsqldb.sourceforge.net/
    Thanks - I will take a look at the links.
    While I am here, I wonder if anyone could validate the approach I have taken for IO (from any source):
    For each object that needs to be persisted, I have create a second class called (ClassObjectName)List. This List class handles all IO, and provides methods to get and put objects and object lists. Whenever my app needs to do some IO, it does this through the List methods. This seems to be working very well for me, and completely hides the database implementation from the rest of the app, which is nice as the database may change in the future.
    As much as I like the way this approach works, this is my first real Java project, so I would be very interested to ear any views or alternatives from the experienced developers.
    Thanks to all and best regards,
    Steve

  • Can't create correct routes in Maps

    Why is it that when I'm creating a route in Maps, the outcome varies dependent on how I created the route, thus using the same route parameters?
    I've created the same route using different ways of creating the route, and the created route is different every time.
    If I create the route in Maps using the search facility, the route is different if I use an address via the people and contacts interface. And again it is different when using Drive.
    I made the discovery when a suggested route made a 16.2 km de-tour on a 11 km stretch. More than a 100%. I'm now wondering if I dare to use NOKIA maps for my summer trip to Italy from Denmark.
    NOKIA -
    Please make a navigation app where I can define my own waypoints. This is essential in every navigation system.
    Please optimize the app, so I can choose an alternative route - this is basic in most modern navigation systems.
    Honest differences are often a healthy sign of progress. - M. Gandhi

    -Rich
    Thanks for your reply. Sorry for not writing phone model and software release.
    It is a Lumia 920 and I'm using Drive +Beta 2.1.0.1451
    I'm also setting the trip options like fastest / shortest, toll roads etc. In this particular case I'm referring to with, a D-tour of more than 16 km on a stretch of 12 km, it doesn't matter how I set my planning options - I'm getting the same result.
    Being well aware that the program makes some mistakes like this one, it would be nice to be able to plane the route in details by using waypoints. That is not possible at the moment with the present software by NOKIA.
    Honest differences are often a healthy sign of progress. - M. Gandhi
    Attachments:
    wp_ss_20130106_0001.png ‏168 KB

  • LinkedList vs. Map

    In my coursework, we did a lot of work with LinkedList. So when I had an application where I wanted to keep a list of name-value pairs, I created an object with two members - name and value - and made a LinkedList of them. Everything-looks-like-a-nail syndrome.
    Now I've discovered that there are Java classes just for this - HashMap, HashTable, TreeMap etc.
    So should I change my code? Or should I stick with the LinkedList? Which of the Map classes would provide the fastest search?

    Does it perform OK? Does it bother you emotionallythat you
    could have used Maps?Yes, it's working, but it isn't fast enough. I can't
    say if that's because I used a LinkedList or not, I
    don't know. And yes, I will have trouble sleeping if
    I find out that Map would have been a better solution.
    : )How "not fast enough" is it?
    Switching from a List to a Map should be a fairly easy (depending on how clean your design is), and from what you said about getting by key, Map sounds like the way to go. (You also asked about "searching every element" or something. That sounds like an iteration, not a search, and you can use Map's keySet(), entrySet() or values() method, each of which returns a Collection that can be iterated over. That should perform the same as iterating over a List--or very very close to it.)
    Nonetheless, if you're looking for a performance improvement, it would be a good idea to use a profiler to find out where the real bottleneck is. JProfiler, JProbe, and OptimizeIt all have demo versions, I think, or google for java profiler.
    Of course, if you've got 20,000 elements, it seems likely that switching from a linear search to a hash-based lookup will make a difference.
    I just need the basics. And everybody is searching
    the same instance of the object, but nobody is
    changing it, so I don't need synchronization. Right?Depends what you mean by "changing it." If you populate the list or map first, and then do your searhc/retrieve operations without any more adds or deletes, then no, you don't need to sync. However, if you have more than one thread accessing your map (or list) and one or more of those threads could me adding to or removing form the map or list (structurally modifying it), then you need synchronization.

  • Best approach for IDs mapping..

    Hello,
    I'd like to ask you for your experiences about classical integration problem: mapping of IDs (materials, partners...)
    What is the best approach for integration between SAP and other systems? Can you give me some hints?
    Thanx, Peter

    Hi Peter,
    you have 4 ways to do it:
    1. you can do it inside an integration process:
    RFC call for checking a table with ID -> ID mappings
    (not so good as you have to use integration process)
    but very easy to biuld as this is standard 
    2. table in R/3 and changing the values in a user exit
    (you maintaint the data in a table in R/3)
    the fastest way (no calls to other programs)
    but you have to create user exits and
    this is not why you (your client) bought the XI  
    3. you can use this new RFC API
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/uuid/801376c6-0501-0010-af8c-cb69aa29941c
    which seems to be the best approach
    as you don't need BPM for this and it's a standard
    4. value mapping tables in XI...
    Regards,
    michal
    Message was edited by: Michal Krawczyk

Maybe you are looking for