Doubt about string.intern()

Hello
I have a doubt about string.intern() method.
The document says
When the intern method is invoked, if the pool already contains a string equal to this String object as determined by the String.equals(Object) method, then the string from the pool is returned.
So what is the point of using this intern() method with == or != operators if it aleady calling to equals method internally?
eg:
if (studentObject.getName().intern() == "Student Name") {}cannot be better than
if (studentObject.getName().equals("Student Name")) {}Can someone please explain?

Easy dude.
>
Why do you need to optimize it?>
Because i want to.
I would avoid the whole stupid 100 line if-else by doing a Map of type->object and then just clone() the object. But maybe that might not be suitable or "fast enough" for you.I cannot do above because object have it's own behaviors varying at run time
eg - class One has setOne method and class hundred has setHundred method
. Even if i use a map and clone it again i have to use above comparison for setting those behaviours.
Explain your actual problem you're trying to solve, with actual cases. What are these "one" and "Hundred" classes really? Or is your project so top secret that you can't tell us?It is not secret but big. And I need to make the question understandable. If I post the whole code no one will looking at it.
Now you asking so please have a look.
still I have cleaned up many.
My initial question was how to bit speed up the comparison? And can't i use intern() Because here if I got plenty of rectangles(it is the last) performace sucks.
for (CObject aObject : objList) {
            if (aObject.getType().equals(SConstant.TEMPLATE)) { /* process Template */
                Template tObj = (Template) aObject;
                org.apache.velocity.Template template = VelocityTemplateManager.getInstance().getObjectTemplateFromFile(retemplateProperties.getProperty("PAGE"));
                VelocityContext context = new VelocityContext();
                StringWriter writer = new StringWriter();
                context.put(retemplateProperties.getProperty("BAND_OBJECT"), dtmBand);
                tObj.setTags(writer.toString());
            } else if (aObject.getType().equals(SConstant.LINE)
                    && !isInBandandBandAutoAdjust(aObject)) {
                Line object = (Line) aObject;
                org.apache.velocity.Template template = VelocityTemplateManager.getInstance().getObjectTemplateFromFile(retemplateProperties.getProperty("LINE"));
                VelocityContext context = new VelocityContext();
                StringWriter writer = new StringWriter();
                updateContextWithCheckShifting(context, object);
                context.put(retemplateProperties.getProperty("LINE_OBJECT"), object);
                template.merge(context, writer);
                object.setTags(writer.toString());
            } else if (aObject.getType().equals(SConstant.IMAGE) /* process Image */
                    && !isInBandandBandAutoAdjust(aObject)) {
                REImage imageObject = (REImage) aObject;
                org.apache.velocity.Template template = VelocityTemplateManager.getInstance().getObjectTemplateFromFile(retemplateProperties.getProperty("IMAGE"));
                VelocityContext context = new VelocityContext();
                updateContextWithCheckShifting(context, imageObject);
                context.put(retemplateProperties.getProperty("IMAGE_OBJECT"), imageObject);
                mageObject.setTags(writer.toString());
               else if (aObject.getType().equals(SConstant.RECTANGLE) /* process Rectangle */
                    && !isInBandandBandAutoAdjust(aObject)) {
                Rectangle rectangleObject = (Rectangle) aObject;
                org.apache.velocity.Template template = VelocityTemplateManager.getInstance().getObjectTemplateFromFile(retemplateProperties.getProperty("RECTANGLE"));
                VelocityContext context = new VelocityContext();
                StringWriter writer = new StringWriter();
                updateContextWithCheckShifting(context, rectangleObject);
                context.put(retemplateProperties.getProperty("RECTANGLE_OBJECT"), rectangleObject);
                template.merge(context, writer);
                rectangleObject.setTags(writer.toString());
            }And masijade
Thank you very much for the better explanation.

Similar Messages

  • Doubt about string comparison

    Hi,
    This may sound the simplest and the most stupid question to most of u reading it. But still share your knowledge.
    Let say we have four Strings defined as
    String s = "something";
    String s1 = "something";
    String t = new String("something");
    String t1 = new String("something");
    now if I compare this strings using '==' operator, This is what happens.
    System.out.println(s==s1); // answer is true
    System.out.println(t==t1); // answer is false
    Why the 1st SOP returns true if java does not treat strings as primitive and creates objects for every string eventhough it is instantiated with literals?

    The answer is:
    Java does a String pooling...
    why it give true, for the first case is
    s == s1
    because all this refers to the value in the String pool.. t and t1 are separate Objects although they have the same value("something"). So... when you do t == t1 you check if t and t1 are refering to the same Object(reference comparison), and since they are referencing 2 distinct Objects, the comparison gives false.
    Cheers !

  • Doubt about  a null value assigned to a String variable

    Hi,
    I have a doubt about a behavior when assigning a null value to a string variable and then seeing the output, the code is the next one:
    public static void main(String[] args) {
            String total = null;
            System.out.println(total);
            total = total+"one";
            System.out.println(total);
    }the doubt comes when i see the output, the output i get is this:
    null
    nulloneA variable with null value means it does not contains a reference to an object in memory, so the question is why the null is printed when i concatenate the total variable which has a null value with the string "one".
    Is the null value converted to string ??
    Please clarify
    Regards and thanks!
    Carlos

    null is a keyword to inform compiler that the reference contain nothingNo. 'null' is not a keyword, it is a literal. Beyond that the compiler doesn't care. It has a runtime value as well.
    total contains null value means it does not have memory,No, it means it refers to nothing, as opposed to referring to an object.
    for representation purpose it contain "null"No. println(String) has special behaviour if the argument is null. This is documented and has already been described above. Your handwaving about 'for representation purpose' is meaningless. The compiler and the JVM don't know the purpose of the code.
    e.g. this keyword shows a hash value instead of memory addressNo it doesn't: it depends entirely on the actual class of the object referred to by 'this', and specifically what its toString() method does.
    similarly "total" maps null as a literal.Completely meaningless. "total" doesn't 'map' anything, it is just a literal. The behaviour you describe is a property of the string concatenation operator, not of string literals.
    I hope you can understand this.Nobody could understand it. It is compete nonsense. The correct answer has already been given. Please read the thread before you contribute.

  • Question about the java doc of String.intern() method

    hi all, my native language is not english, and i have a problem when reading the java doc of String.intern() method. the following text is extract from the documentation:
    When the intern method is invoked, if the pool already contains a string equal to this String object as determined by the equals(Object) method, then the string from the pool is returned. Otherwise, this String object is added to the pool and a reference to this String object is returned.
    i just don't know the "a reference to this String object is returned" part, does the "the reference to this String" means the string that the java keyword "this" represents or the string newly add to the string pool?
    eg,
    String s=new String("abc");  //create a string
    s.intern();  //add s to the string pool, and return what? s itself or the string just added to string pool?greate thanks!

    Except for primitives (byte, char, short, int, long, float, double, boolean), every value that you store in a variable, pass as a method parameter, return from a method, etc., is always a reference, never an object.
    String s  = "abc"; // s hold a reference to a String object containing chars "abc"
    foo(s); // we copy the reference in variable s and pass it to the foo() method.
    String foo(String s) {
      return s + "zzz"; // create a new String and return a reference that points to it.
    s.intern(); //add s to the string pool, and return what? s itself or the string just added to string pool?intern returns a reference to the String object that's held in the pool. It's not clear whether the String object is copied, or if it's just a reference to the original String object. It's also not relevant.

  • Doubt about unicode conversion

    Dear Friends,
    I have a doubt about the unicode conversion. I have read (one server strategy) that I have to do export (R3load), delete the ECC 6.0 non-unicode, install an unicode database and then import with R3load. My doubt is about the deletion of ECC 6.0 non unicode. Why?  can I convert to unicode only with an export (R3load) and subsequent import (R3load) without any deletion?. Obviously I must to change the SAP kernel with a unicode one. Is it correct?
    Cheers

    you can not convert a SAP System to unicode by just exchanging the executables from non unicode to unicode ones.
    a non unicode SAP Oracle database is typically running with a database codepage WE8DEC or US7ASCII (well this one is out of support).
    so every string stored in the database is stored using this codepages or SAP-Internal codepages.
    When converting to unicode you have to convert also the contents of the database to unicode. As unicode implementation starts at a time where Oracle did not support mixed codepage databases (one tablespace codepage WE8DEC the other one UTF8) inplace conversions are not possible. To keep things simpler, we still do not support mixed codepage databases.
    Therefore you have to export the contents of your database and import it to a newly created database with a different codepage if you want to migrate to unicode.
    regards
    Peter

  • Doubt in String Equals

    Doubt in String Equals_
    if(filePath != "") {
         getExcelData(filePath);
    }same as
    if(!filePath.equals("")) {
         getExcelData(filePath);
    }The can both be used interchangeably right ?

    kajbj wrote:
    (You should really open a textbook and read about Strings, or google)fortunatly i know this :)
    if you do
    String str = "abc"
    str =="abc" // will always return true.
    but str==(new String("abc")) // will always return false.
    But as per the query posted i am referring to the first case :)

  • Doubt about Select statement.

    Hi folks!!
                 I have a few doubts about the select statements, it may be a silly things but its useful for me.
    what is   difference between below statment.
    1)SELECT * FROM TABLE.
    2)SELECT SINGLE * FROM TABLE
    3)SELECT SINGLE FROM TABLE.
    Hope i will get answer,thanks in advance.
    Regards
    Richie..

    Hi,
    try this and if possible use sap help.i mean place the cursor on select and press F1.
                 Types of select statements:
    1.     select * from ztxlfa1 into table it.
                 This is simple select statement to fetch all the data of db table into internal table it.
       2.   select * from ztxlfa1 into table it where lifnr between 'V2' and 'V5'.
            Thisis using where condition between v2 and v5.
      4. select * from ztxlfa1 where land1 = 'DE'. "row goes into default table work Area
      5. select lifnr land1 from ztxlfa1
            into corresponding fields of it   "notice 'table' is omitted
             where land1 = 'DE'.
              append it.
               endselect.
         Now data will go into work area. and then u will add it to internal table by     
            append statement.
      6.   Table 13.2 contains a list of the various forms of select as it is used with internal tables and their relative efficiency. They are in descending order of most-to-least efficient.
    Table 13.2  Various Forms of SELECT when Filling an Internal Table
    Statement(s)                                   Writes To
    select into table it                                    Body
    select into corresponding fields of table it   Body
    select into it                                    Header line
    select into corresponding fields of it           Header line
    7. SELECT VBRK~VBELN
           VBRK~VKORG
           VBRK~FKDAT
           VBRK~NETWR
           VBRK~WAERK
           TVKOT~VTEXT
           T001~BUKRS
           T001~BUTXT
        INTO CORRESPONDING FIELDS OF TABLE IT_FINAL
        FROM VBRK
        INNER JOIN TVKOT ON VBRKVKORG = TVKOTVKORG
        INNER JOIN T001 ON VBRKBUKRS = T001BUKRS
        WHERE VBELN IN DOCNUM AND VBRK~FKSTO = ''
       AND VBRK~FKDAT in date.
    Select statement using inner joins for vbrk and t001 and tvkot table for this case based on the conditions
    8. SELECT T001W~NAME1 INTO  TABLE IT1_T001W
    FROM T001W INNER JOIN EKPO ON T001WWERKS = EKPOWERKS
    WHERE EKPO~EBELN = PURORD.
    here selecting a single field into table it1_t001winner join on ekpo.
    9. SELECT BUKRS LIFNR EBELN FROM EKKO INTO CORRESPONDING FIELDS OF IT_EKKO WHERE     EBELN IN P_O_NO.
    ENDSELECT.
    SELECT BUTXT   FROM T001 INTO  IT_T001 FOR ALL ENTRIES IN IT_EKKO WHERE BUKRS = IT_EKKO-BUKRS.
    ENDSELECT.
    APPEND IT_T001.
    here I am using for all entries statement with select statement. Both joins and for all entries used to fetch the data on condition but for all entries is the best one.
    10. SELECT AVBELN BVTEXT AFKDAT CBUTXT ANETWR AWAERK INTO TABLE ITAB
                 FROM  VBRK AS A
                 INNER JOIN TVKOT AS B ON
                 AVKORG EQ BVKORG
                 INNER JOIN T001 AS C ON
                 ABUKRS EQ CBUKRS
                 WHERE  AVBELN IN BDOCU AND AFKSTO EQ ' ' AND B~SPRAS EQ
                 SY-LANGU
                 AND AFKDAT IN BDATE AND AVBELN EQ ANY ( SELECT VBELN FROM
                VBRP WHERE VBRP~MATNR EQ ITEMS ).
        Here we are using sub query in inner join specified in brackets.
    Thanks,
    chandu.

  • Doubts about Temporary Table.

    Hi,
    I am using Temporary Table.
    But the insert command takes too much time compare to insert in Normal table.
    One more doubt about Temporary Table is:
    Suppose there are two different users. They connect and first insert rows of their use .Now they go for select.
    Does select of one user goes to check the rows of second user also or the temporary table treats 2 users data as inserted in 2 different tables?
    Help!!!

    Nested structure (not deep - deep means their a string or a table as a component)
    TYPES: BEGIN OF tp_header_type,
             BEGIN OF d,
               empresa TYPE ...
               num_docsap TYPE ...
            END OF d,
            awkey TYPE ...
          END OF tp_header_type.
    matt

  • Doubt about webDynpro windows

    HI Experts,
    I have small doubt about webdynpro windows.
    1) If i have only one application in webdynpro DC , what is use of using multiple windows.
    2) If i have multiple windows in a DC which has single application, how i can i navigate between windows?
    3)if i have multiple applications with multiple windows, then how will i know which window belongs to which application.
    4)If i have multiple windows and multiple applications, then how can we navigate between windows? It means navigation betn windows and navigation betn applications...?
    Please explain me, i browsed in SDN, i found the threads but they are explaining my doubts exactly
    Thanks in advance.
    Regards,
    Bala

    Hi.
    Simply the Window is part of Web Dynpros public interfaces, and are needed whenever you want to access a graphic component from outside of your web dynpro component.
    Web Dynpro uses the MVC design pattern. Model View Control.
    In order to reuse components, Web Dynpro exposes the View and Controller to the outside world.
    Internally the View and Control in MVC is just that:
    Views
    Component Controller and Custom Controller.
    Externally the View and Control are exposed as
    Interface Controller and Interface Views. The Interface View is the external part of a Window. (When a Window is created, an associated Interface View is created).
    So, to be able to actually see anything from a Web Dynpro application. The browser would access a Interface View that opens the Window with some view in it.
    An other example is that you have two Web Dynpro projects, where the first one have a View with an integrated view from the second Web Dynpro. The integration would be through the Interface View again.
    Internally in your Web Dynpro component, you can use the views directly (i.e. navigate between views).
    Opening an external popup would generate a new browser window. In order for the new browser window to display anything it would need to access an interface view. That's why you need to create a separate Window when you want to use a popup.
    Regards.
    Edited by: Mikael Löwgren on Feb 15, 2008 12:58 PM

  • What String.intern() actually improve

    Everyone is saying that calling String.intern() for comparison is a much better way to do than calling String.equals() method. I make a quick test to make sure about it before using in my program. However, it comes out as a surprise that by running a loop of 10 millions iterations, version of equals() spend 800 ms while vesion of intern() spend 3000 ms which is much longer.
    Anyone has any idea why? Is .intern() really an improvement?
    My code:
    class testIntern {
    public static void main(String[] args) {
    String sTest = new String("Hello Everyone");
    System.out.println(sTest.intern()=="Hello Everyone");
    System.out.println("version".intern()=="version");
    long x = System.currentTimeMillis();
    int j = 0;
    for (int i = 0; i < 10000000; i ++) {
    sTest = new String("Hello Everyone");
    if(sTest.intern() == "Hello Everyone") {
    j++;
    System.out.println(System.currentTimeMillis() - x);
    System.out.println(j);
    }

    Grepping the JDK 1.5 source for the pattern "intern *(", I found 56 files. So far, I'm considering it an example of how not to use intern(). For example, in com.sun.org.apache.xml.internal.utils.NamespaceSupport2, we have this gem:
        void declarePrefix (String prefix, String uri)
                                    // Lazy processing...
            if (!tablesDirty) {
                copyTables();
            if (declarations == null) {
                declarations = new Vector();
            prefix = prefix.intern();
            uri = uri.intern();
            if ("".equals(prefix)) {
                if ("".equals(uri)) {
                    defaultNS = null;
                } else {
                    defaultNS = uri;
            } else {
                prefixTable.put(prefix, uri);
                uriTable.put(uri, prefix); // may wipe out another prefix
            declarations.addElement(prefix);
        }So, they intern both the namespace prefix and URI, taking up space in the permgen. Then they use .equals() to compare those to a constant string, and put both values in standard Hashtables!
    There are several cases where intern() is used to prevent the compiler from performing constant substitution:
        public final static String PREFIX_XMLNS = "xmlns".intern();It's a nice little trick, when your constants are likely to change: no need to recompile dependent classes. However, since this particular prefix is defined by the W3C namespace spec, the trick is of very dubious value here.
    There are a few cases, such as in java.lang.Class, where intern() is used so that you can do a fast string search over a fixed array. I suspect these cases exist to avoid a dependency on Map. Whether or not a simple equals() would have been sufficient is an open question.

  • Doubts about RAC infraestructure with one disk array

    Hello everybody,
    I'm writing to you because we have a doubt about the correct infrastructure to implement RAC.
    Please, let me first explain the current design we are using for Oracle DB storage. Currently we are running several standalone instances in several servers, all of them connected to a SAN disk storage array. As we know this is a single point of failure we have redundant controlfiles, archiveds and redos both in the array and in the internal disk of each server, so in case array completely fails we “just” need to recover nightly cold backup, apply archs and redos and everything it's ok. This can be done because we have standalone instances and we can assume this 1 hour downtime.
    Now we want to use these servers and this array to implement a RAC solution and we know this array is our single point of failure and wonder if it's possible to have a multinode RAC solution (not RAC One Node) with redundant controlfiles/archs/redos in internal disks. Is it possible to have each node writing full RAC controlfiles/archs/redos in internal disks and apply these files consistently when the ASM filesystem used for RAC is restores (i.e. with a softlink in an internal disk and using just one node)? Or maybe the recommended solution is to have a second array to avoid this single point of failure?
    Thanks a lot!

    cssl wrote:
    Or maybe the recommended solution is to have a second array to avoid this single point of failure?Correct. This is the proper solution.
    In this case you can also decide to simply use striping on both arrays, then mirror array1's data onto array2 using ASM redundancy options.
    Also keep in mind that redundancy is also need for the connectivity. So you need at least 2 switches to connect to both arrays, and dual HBA ports on each server, with 2 fibres running, one to each switch. You will need multipath driver s/w on the server to deal with the multiple I/O paths to the same storage LUNs.
    Likewise you need to repeat this for your Interconnect. 2 private switches, 2 private NICs on each server that are bonded. Then connect these 2 NICs to the 2 switches, one NIC per switch.
    Also do not forget spares. Spare switches (one each for storage and Interconnect). Spare cables - fibre and whatever is used for the Interconnect.
    Bottom line - not a cheap solution to have full redundancy. What can be done is to combine the storage connection/protocol layer with the Interconnect layer and run both over the same architecture. Oracle's Database Machine and Exadata Storage Servers do this. You can run your storage protocol (e.g. SRP) and your Interconnect protocol (TCP or RDS) over the same 40Gb Infiniband infrastructure.
    Thus only 2 Infiniband switches are needed for redundancy, plus 1 spare. With each server running a dual port HCA and a cable to each of these 2 switches.

  • How to get information about limitation Internal Memory on device

    hallo ..
    have some question here, so please some person able to answer my questions 
    1. How to get Information about limitation internal memory on device 
    2. is possible to improve internal memory on Blackberry ( move apps on external memory )
    3. any tools to get internal memory activity ?
    thanks for this people who joins here, hope we can share more information about blackberry .. 

    In addition...
    There are three types of potential memory on a BB: 1) Application Memory, 2) Device Memory, and 3) Media/SD Card Memory.
    Application Memory -- This is the most crucial; it is the protected (not user accessible), dedicated, and fixed (in size) space that is available as the destination for the installation of applications (plus some application storage, overhead and such). You cannot touch AppMemory. You cannot improve the maximum AppMemory that your BB has. It is what it is. Applications can only install here...there is no option.
    Device Memory -- This is space on your BB that you can touch to store files, pictures, media, etc. Typically, it is not terribly large, but it is available to you.
    SD/Media Card Memory-- This is what it says...your SD card, for you to store files, media, pictures, etc. It can be as large as your BB OS can support...see this KB:
    KB05461MicroSD card sizes supported by the BlackBerry device software
    On some devices/OS levels, you can only see "File Free" (Options > Status), which I think is equivalent to AppMemory. On other devices, you can see all three memory usage levels (Options > Memory). Here are some guidelines to use:
    KB02843What is the Low Memory Manager feature on the BlackBerry smartphone
    KB14320How to maximize free space and battery power on the BlackBerry smartphone
    KB14213Call logs, SMS text messages, and email messages are deleted from the BlackBerry smartphone
    Lastly, it is always important to properly close applications when you are done with them. Using the Back or the Red key will not do this -- those leave it to the app to decide what to do...and some will leave themselves resident in memory, consuming resources on your BB, slowing the overall performance. Rather, to close an app, press and select "Close" or "Exit"...that will force the application to be closed, freeing up for your new use the resources it was consuming. Some apps will always remain running (typically -- BBMessenger, Browser, Homescreen, Phone, and Messages)...but, you should still close them properly - especially the Browser...if it is left on an active web page, it will not only consume extra resources but battery power as well.
    Further, anytime random strange behavior or sluggishness creeps in, the first thing to do is a battery pop reboot. With power ON, remove the back cover and pull out the battery. Wait about a minute then replace the battery and cover. Power up and wait patiently through the long reboot -- ~5 minutes. See if things have returned to good operation. Like all computing devices, BB's suffer from memory leaks and such...with a hard reboot being the best cure. Some have taken to doing this on a regular basis as a preventive measure...some as frequently as once per day. Others have obtained the QuickPull app to automate a simulated Batt-Pull.
    Good luck!
    Occam's Razor nearly always applies when troubleshooting technology issues!
    If anyone has been helpful to you, please show your appreciation by clicking the button inside of their post. Please click here and read, along with the threads to which it links, for helpful information to guide you as you proceed. I always recommend that you treat your BlackBerry like any other computing device, including using a regular backup schedule...click here for an article with instructions.
    Join our BBM Channels
    BSCF General Channel
    PIN: C0001B7B4   Display/Scan Bar Code
    Knowledge Base Updates
    PIN: C0005A9AA   Display/Scan Bar Code

  • Doubt about Bulk Collect with LIMIT

    Hi
    I have a Doubt about Bulk collect , When is done Commit
    I Get a example in PSOUG
    http://psoug.org/reference/array_processing.html
    CREATE TABLE servers2 AS
    SELECT *
    FROM servers
    WHERE 1=2;
    DECLARE
    CURSOR s_cur IS
    SELECT *
    FROM servers;
    TYPE fetch_array IS TABLE OF s_cur%ROWTYPE;
    s_array fetch_array;
    BEGIN
      OPEN s_cur;
      LOOP
        FETCH s_cur BULK COLLECT INTO s_array LIMIT 1000;
        FORALL i IN 1..s_array.COUNT
        INSERT INTO servers2 VALUES s_array(i);
        EXIT WHEN s_cur%NOTFOUND;
      END LOOP;
      CLOSE s_cur;
      COMMIT;
    END;If my table Servers have 3 000 000 records , when is done commit ? when insert all records ?
    could crash redo log ?
    using 9.2.08

    muttleychess wrote:
    If my table Servers have 3 000 000 records , when is done commit ? Commit point has nothing to do with how many rows you process. It is purely business driven. Your code implements some business transaction, right? So if you commit before whole trancaction (from business standpoint) is complete other sessions will already see changes that are (from business standpoint) incomplete. Also, what if rest of trancaction (from business standpoint) fails?
    SY.

  • Doubts about BP number in SRM and SUS

    Hello everyone,
    I have some doubts about the BP number, especially for Vendors.
    I am working with the implementation of SRM 5.0 with SUS in an extended classic scenario. We will use one server for SRM and other for SUS. We will use the self registration for vendor (in SUS). My questions are:
    - Can I have the same BP number in SRM and SUS?? Or is it going to be different??
    - When a vendor accesses at the site to make a self registration in SUS, the information is sent to SRM as prospect (by XI) and there the prospect is changed as vendor? After that, is it necessary to send something from SRM to SUS again? (to change the prospect to vendor)
    - When is it necessary to replicate vendors from SRM to SUS??
    Thanks
    Ivá

    Dear Ivan,
    Here is answer to all your questions. Follow these steps for ROS configuration:
    Pls note:
    1. No need to have seperate clients for ROS and SUS. Create two clients for EBP and (SUS+ROS).
    2. No need of XI to transfer new registered vendor from ROS to EBP
    Steps to configure scenario:
    1. Make entries in SPRO --> "Define backend system" on both clients.
        You will ahev specify logical systems of both the clients (ROS as well as EBP)
    2. Create RFCs on both clients to communicate with each other
    3. In ROS client create Service User for supplier registration service with roles:
        SAP_EC_BBP_CREATEUSER
        SAP_EC_BBP_CREATEVENDOR
        Grant u201CS_A.SCONu201D profile to the user.
    4. Maintain service user in u201CLogon Datau201D tab of service : ros_self_reg in ROS client
    5. Create Purchasing and vendor Organizational Structure in EBP client and maintain necessary
        attributes. create vendor org structure in ROS client
    6. Create your ROS registration questionnaires and assign to product categories- in ROS client
    7. To transfer suppliers from registration system to EBP/Bidding system, Supplier pre-screening has to be
        defined as supplier directory in SRM server - EBP client.
        Maintain your prescreen catalog in IMG --> Supplier Relationship Management u2192 SRM Server u2192
        Master Data u2192 Define External Web Services (Catalogs, Vendor Lists etc.) 
    8. Maintain this catalog Id in purchasing org structure under attribure "CAT" - in EBP client
    9. Modify purchaser role in EBP client:
        Open node for u201CROS_PRESCREENu201D and maintain parameter "sap-client" and ROS client number
    10.Maintain organizational data in make settings for business partner
    Supplier Relationship Management -> Supplier Self-Services -> Master Data -> Make Settings for the Business Partners. This information is actually getting getting stored in table BBP_MARKETP_INFO.
    11. Using manage Business partner node with purchasers login (BBPMAININT), newly registsred vendors are pulled from Pre-screen catalog and BP is created in EBP client. If you you have SUS scenario, ensure to maintain "portal vendor" role here.
    I hope this clarifies all your doubts.
    Pls reward points for helpful answers
    Regards,
    Prashant

  • Doubt about uses of OBIEE

    I have some doubts about the possible uses of OBIEE. It happens that using OBIEE sometimes users demand report of an "analytical" type, that is aggregated analysis through OBIEE’s Answers, selecting data from dimension tables and measures from fact tables. That’s the ordinary purpose of business intelligence tools!!!
    Some other times though, users demand to perform through Answers analyses of an "operating" type, that is simple extractions of some fields belonging to dimension tables, linked between each other through joins, (hence without querying fact tables): that happens because some of the tables brought in the datawarehouse are not directly linked to any fact table. In this way users want to use Answers to visualize data even for this kind of extractions (or operating reports).
    Is this a correct use of the tool or is it just a “twisted” way of using it, always leading eventually to incorrect extractions? If that’s the case, is it possible to use instead BI Publisher, extracting the dataset through the "Sql Query" mode in a visual manner? The problem of the latter solution, in my case, relies in the fact that users are not enough skilled from the technical point of view: they would prefer to use Answers for every extraction, belonging both to the first type (aggregations) and the second one (extractions), that I just described. Can you suggest a methodology to clarify this situation?

    Hi,
    I understand your point... But I think OBIEE doesn't allow having dimension "on their own", they must be joined to a fact table somehow. This way, when you do a query in answers using fields of two dimension tables a fact table should be always involved. When dimensions are conformed, several fact tables may be used, and OBIEE uses the "best" one in terms of performance. However, there are some tricks that you can do to make sure a particular fact table is used, like using the "implicit fact column" in the presentation layer.
    So back to your point, using OBIEE for "operational" reporting as you call it is a valid option in my experience, but you have to make sure that the underlaying star schema supports the logic that your end users expect when they use just dimension fields.
    Regards,

Maybe you are looking for

  • Calling a stored procedure on SQL 2008 server

    This might be easy one, but I tried different things just cannot get it to work. I am trying to call a stored procedure in SQL 2008 R2 server using Type 4 driver (sqljdbc4.jar) with JR. The stored procedure basically has one input and two outputs ALT

  • Org.w3c.dom.Element Serialization

    I see in the serialization list that org.w3c.dom.Document get's serialized to XML, but is there a reason why org.w3c.dom.Element only get's serialized to an object?  I would think that it should also be serialized to an XML Object, is there a way to

  • Getting Error Message when Running MRKO for Settlement  of Consignment

    Hi Experts , When I am trying to run MRKO to settle the consignments , i am getting the below  error message ,can you please advice the reason for this and how we can resolve this error meesage . Using MRKO and trying to settle the documents . Error:

  • Is there a way to export data from Framemaker 7.0 to InDesign CS3 for the MAC

    I am asking this question for our Advertising department so I am not too close to the situation. Another company that is part of oujr platform designed their catalogs in Framermaker 7.0. We have Framemaker 6.0. The only reason we have it is to work w

  • Kind Attn:OTN Customer Team PLEASE HELP FOR LOGIN

    I have seen lot of members are facing login problem with old username/password. I am facing the same.I am unable to login with old username/password "dmewani/*******" .Please reset my account. even after coping "username/password" from email received