Value or binding, best practice.

I was using a lot of value attribute before. Played with Sun Creator lately and realized that it is using binding very heavily.
What's the best practice to use value and binding?
To use binding, it's more like Java Swing. You can access the UI Component inside the page bean. To use value, the user input is converted to the right type by the framework, which is very convenient.
thanks.

Note that you can use both at the same time.
I think that if you're comfortable with the concept of coding a "model" for your data - instead of just, say, writing JDBC calls - then the best practice is to use "value", and use "binding" only where you need to specifically access the component for component-ish things. This'll keep your model cleanly isolated from your view, generally considered a good thing.
But if you've got a strong personal preference for just talking to APIs like JDBC directly, and don't want the extra abstraction of a model layer, then by all means use "binding". Sun's JS Creator is targetted at that sort of developer.
Hope this helps.
-- Adam Winer (EG member)

Similar Messages

  • HowTo: Replace values in Entity, best practice

    I was reading jsr-220 and now I have a question.
    What is the best practice to replace values in an entity?
    For example I have an entity Person:
    @Table(name = "Person", schema = SCHEMA)
    public class Person{
         @Id
         @GeneratedValue
         private int id;
         private String sourceUri;
           @ManyToMany(fetch=FetchType.EAGER, cascade={CascadeType.MERGE, CascadeType.REFRESH, CascadeType.PERSIST} )
         private List<Representative> representatives;
         @OrderBy("date")
         @ManyToMany(fetch=FetchType.EAGER, cascade={CascadeType.ALL}, mappedBy="person")
            private List<PersonAccessCounter> counter;
         @OneToMany(fetch=FetchType.EAGER, cascade={CascadeType.ALL}, mappedBy="person")
         private List<EducationLevel> educationLevels;
          //some other fileds + getters/setters
    }As you can see, my Person has autoGenerated id. But also it has other "unformal" identity field: sourceUri
    Imagine such situation:
    I've persisted a Person. While system was in use, it's id points to some other entities. So I can't loose it.
    Then, my special crawler gathered new info about person.
    Using sourceUri of Person(crawler has provided it) I can select already persisted person from DB.
    Now, my task is to completely remove some fields (this data must disappear from DB, totally, no orphaned links) from persisted person and replace them with values from new person gathered by crawler.
    What's better?
    1. Find persitedPerson using sourceUri
    2. Replace some fields of persitedPerson with new values taken from crawledPerson.
    3. em.merge(persistedPerson)
    OR
    1. Find persitedPerson using sourceUri.
    2. Set some fields of persitedPerson to NULL
    3. Merge persitedPerson
    4. Set new values to persitedPerson taken from crawledPerson.
    3. em.merge(persistedPerson)
    Seems like the first variant is enough. It will fork fine if annotations were set correctly (cascade={CascadeType.ALL} and other)
    Edited by: Holod on 10.11.2008 16:32
    Edited by: Holod on 10.11.2008 16:46

    I was reading jsr-220 and now I have a question.
    What is the best practice to replace values in an entity?
    For example I have an entity Person:
    @Table(name = "Person", schema = SCHEMA)
    public class Person{
         @Id
         @GeneratedValue
         private int id;
         private String sourceUri;
           @ManyToMany(fetch=FetchType.EAGER, cascade={CascadeType.MERGE, CascadeType.REFRESH, CascadeType.PERSIST} )
         private List<Representative> representatives;
         @OrderBy("date")
         @ManyToMany(fetch=FetchType.EAGER, cascade={CascadeType.ALL}, mappedBy="person")
            private List<PersonAccessCounter> counter;
         @OneToMany(fetch=FetchType.EAGER, cascade={CascadeType.ALL}, mappedBy="person")
         private List<EducationLevel> educationLevels;
          //some other fileds + getters/setters
    }As you can see, my Person has autoGenerated id. But also it has other "unformal" identity field: sourceUri
    Imagine such situation:
    I've persisted a Person. While system was in use, it's id points to some other entities. So I can't loose it.
    Then, my special crawler gathered new info about person.
    Using sourceUri of Person(crawler has provided it) I can select already persisted person from DB.
    Now, my task is to completely remove some fields (this data must disappear from DB, totally, no orphaned links) from persisted person and replace them with values from new person gathered by crawler.
    What's better?
    1. Find persitedPerson using sourceUri
    2. Replace some fields of persitedPerson with new values taken from crawledPerson.
    3. em.merge(persistedPerson)
    OR
    1. Find persitedPerson using sourceUri.
    2. Set some fields of persitedPerson to NULL
    3. Merge persitedPerson
    4. Set new values to persitedPerson taken from crawledPerson.
    3. em.merge(persistedPerson)
    Seems like the first variant is enough. It will fork fine if annotations were set correctly (cascade={CascadeType.ALL} and other)
    Edited by: Holod on 10.11.2008 16:32
    Edited by: Holod on 10.11.2008 16:46

  • Select One Choice attribute' LoV based on two bind variables, best practice

    Hello there,
    I am in the process of learning the ADF 11g, I have following requirement,
    A page must contain a list of school names which is needed to be fetched based on two parameters, the parameters are student information been inserted in the previous page.
    I have defined a read only view "SchoolNamesViewRO", it's query depends on two bind variables :stdDegree and stdCateg.
    added that RO View as a view accessor to the entity to which the name attribute belongs, and then add LoV for the name attribute using the ReadOnly view,
    added the name attribute as Select One Choice to page2,
    and now I need to pass the values of the bind variables of the ReadOnly view,
    the information needed to be passed as the bind variables is inserted in the previous page, I could have the data as bindings attribute values in the page2 definition
    I have implemented the next two appraoches but both resulted in an empty list :
    * added ExecuteWithParams Action to the bindings of the page and then defined an Invoke Action (set refresh condition) in the executable s, set the default values of the parameters to be the attributes values' input value,
    in the trace I code see that the binding fetches correct values as supposed , but the select list appears empty, does the this execution for the query considered to be connected to the list ?
    * added a method to the ReadOnly view Imp java class to set the bind variables, then I define it as a MethodAction in the bindings , and then create an Invoke action for it , also the select is empty,
    if the query been executed with the passed variables, then why the list is empty? is it reading data from another place than the page!
    and what is the best practice to implement that requirement?
    would the solution be : by setting the default value of the bind variables to be some kind of Expression!
    please notice that query execution had the bound variables ( I see in the trace) are set to the correct values.
    would you give some hints or redirect me to a useful link,
    Thanks in advance
    Regards,

    please give me any example using backing bean .for example
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
    <f:view>
    <af:document id="d1">
    <af:form id="f1">
    <af:selectOneChoice label="Label 1" id="soc1" binding="#{Af.l1}"
    autoSubmit="true">
    <af:selectItem label="A" value="1" id="si1"/>
    <af:selectItem label="B" value="2" id="si2"/>
    </af:selectOneChoice>
    <af:selectOneChoice label="Label 2" id="soc2" disabled="#{Af.l1=='2'}"
    partialTriggers="soc1">
    <af:selectItem label="C" value="3" id="si3"/>
    <af:selectItem label="D" value="4" id="si4"/>
    </af:selectOneChoice>
    </af:form>
    </af:document>
    </f:view>
    </jsp:root>
    package a;
    import oracle.adf.view.rich.component.rich.input.RichSelectOneChoice;
    public class A {
    private RichSelectOneChoice l1;
    public A() {
    public void setL1(RichSelectOneChoice l1) {
    this.l1 = l1;
    public RichSelectOneChoice getL1() {
    return l1;
    is there any mistake

  • Best Practice: Data Binding

    Each non-trivial Swing application needs to bind GUI elements (windows and components) to data. Ten years back in my MFC times, the typical solution was to initialize the GUI with fixed data, show the window, and read back the modified data after window closure. But in Swing, there is more flexibility (data can be dynamic for example). But what is the best way to deal with data binding?
    - Writing custom models, bound directly to data objects?
    - Initializing once and read back after window closure?
    - Using the non-standard (but rather interesting) beans binding API?
    Certainly there are more solutions, but my intention is not to write a list of possibilities or to get your opinion on one of these solutions. Actually I'd like to know from the experienced Swing pros in this forum, whether there is a best practice for data binding?

    Hi,
    I'd say it depends on what kind of data are you binding and if they're refreshed or not. In our "framework" we're using Properties-based approach for dialogs - server packs an @Entity into class similar to Properties - basically it's s Map<String, Object>, sends this Properties to client and values are put into our customised components. We're using component name as a key, most of controls are simple extends of standard JComponents with handful of methods from common interface (like load(), save(), ...). This approach seems to work fine.
    For refreshed "lists" we're using again our custom "framework" based on sending initial batch and consequent diffs - there is sort of event queue responsible for telling everyone what had been changed. Because this kind of data tends to be quite huge, we're sending gzipped binary representation of source data.
    With beans there might be a way how to implement both simply by calling getters, but then every single value results in one roundtrip, which was absolutely unacceptable for us. But I can imaging this working fine on LAN.

  • Best practice for default values in EO

    I have and entity called AUTH_USER (a user table) within it has 2 TIMESTAMP WITH TIME ZONE columns like this ...:
    EFF_DATE TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT current_timestamp,
    TERM_DATE TIMESTAMP WITH TIME ZONE
    Notice EFF_DATE has a default constraint and is not nullable.
    In the EO, EFF_DATE is represented as a TIMESTAMPTZ and is checked as MANDATORY in its attribute properties. I cannot commit a NEW RECORD based on VO derived from this EO because of the MANDATORY constraint that is set in the EFF_DATE attribute's properties unless I enter a value. My original strategy was to have the field populated by a DEFAULT DATE if the user should attempt to leave this field null.
    This is my deli ma.
    1. I could have the database populate the value based on the default constraint in the table definition. Since EFF_DATE and TERM_DATE resemble the Effective Date (Start, End) properties that the framework already provides then I could set both fields as Effective Date (Start, End) and then check Refresh After Insert. But this still won't work unless I deselect the mandatory property on EFF_DATE.
    2. The previous solution would work. However, I'm not sure that it is part of a "Best Practices" solution. In my mind if a database column is mandatory in the database then it should be mandatory in the Model as well.
    3. If the first option is a poor choice, then what I need to do is to leave the attribute defined and mandatory and have a DEFAULT VALUE set in the RowImpl create method.
    4. Finally, I could just force the user to enter a value. That would seem to be the common sense thing to do. I mean that's what calendar widgets and AJAX enabled JSF are for!
    Regardless to what the correct answer is, I'd like to see some sample code of how the date can be populated inside the RowImpl create method and it pass to setEffDate(TimestampTZ dt). Keep in mind though that in this instance I need the timezone at the database server side and not the client side. I would also ask for advice on doing this with Groovy Scripting or expressions.
    And finally, what is the best practice in this situation?
    Thanks in advance.

    How about setting the default value property of the attribute in the EO to be adf.currentDate ?
    (assuming you are using 11g).
    This way there is a default date being set when the record is created and the user can change it if he wants to.

  • Best Practice for Extracting a Single Value from Oracle Table

    I'm using Oracle Database 11g Release 11.2.0.3.0.
    I'd like to know the best practice for doing something like this in a PL/SQL block:
    DECLARE
        v_student_id    student.student_id%TYPE;
    BEGIN
        SELECT  student_id
        INTO    v_student_id
        FROM    student
        WHERE   last_name = 'Smith'
        AND     ROWNUM = 1;
    END;
    Of course, the problem here is that when there is no hit, the NO_DATA_FOUND exception is raised, which halts execution.  So what if I want to continue in spite of the exception?
    Yes, I could create a nested block with EXCEPTION section, etc., but that seems clunky for what seems to be a very simple task.
    I've also seen this handled like this:
    DECLARE
        v_student_id    student.student_id%TYPE;
        CURSOR c_student_id IS
            SELECT  student_id
            FROM    student
            WHERE   last_name = 'Smith'
            AND     ROWNUM = 1;
    BEGIN
        OPEN c_student_id;
        FETCH c_student_id INTO v_student_id;
        IF c_student_id%NOTFOUND THEN
            DBMS_OUTPUT.PUT_LINE('not found');
        ELSE
            (do stuff)
        END IF;
        CLOSE c_student_id;   
    END;
    But this still seems like killing an ant with a sledge hammer.
    What's the best way?
    Thanks for any help you can give.
    Wayne

    Do not design in order to avoid exceptions. Do not code in order to avoid exceptions.
    Exceptions are good. Damn good. As it allows you to catch an unexpected process branch, where execution did not go as planned and coded.
    Trying to avoid exceptions is just plain bloody stupid.
    As for you specific problem. When the SQL fails to find a row and a value to return, what then? This is unexpected - if you did not want a value, you would not have coded the SQL to find a value. So the SQL not finding a value is an exception to what you intend with your code. And you need to decide what to do with that exception.
    How to implement it. The #1 rule in software engineering - modularisation.
    E.g.
    create or replace function FindSomething( name varchar2 ) return foo.col1%type is
      id foo.col1%type;
    begin
      select col1 into id from foo where col2 = upper(name);
      return( id );
    exception when NOT_FOUND then
      return( null );
    end;
    And that is your problem. Modularisation. You are not considering it.
    And not the only problem mind you. Seems like your keyboard has a stuck capslock key. Writing code in all uppercase is just as bloody silly as trying to avoid exceptions.

  • Best practice for updating ATWRT (Characteristic Value) in AUSP

    I've notice that when we change the Characteristic Value of a Classification, that it does not update in the MM record. We have to go into MM02 for each material number that references Char Value and manually change it for row in AUSP to get updated.
    Should i just create a report to Loop through and update table AUSP directly? Or is there a better way to do this via a function or BAPI etc? Wanting to know what best practice is recommended.

    Hi Scott
    You can use a BAPI to do that.
    Check the following thread:
    BAPI to update characteristics in Material master?
    BR
    Caetano

  • Best Practice Question - Business Logic in Value Objects?

    Just wondering what people's thoughts on best practices for setting properties of Value Objects.
    For instance, I have several getter/setters in one of my Value Objects with logic in the setter that uses the value to set values of other properties.
    For example, I have a Value Object that has the following properties:
    category (of type Category, which is another Value Object with properties "name" and "id")
    categoryId (of type int)
    categoryUpdated (of type Boolean)
    I have a collection of Category Objects in the Model. When I set the categoryId of this class, I set the "categoryUpdated" to true, and dispatch an CairngormEvent to that find the "category" with the specified "categoryId" and set the "category" property to this item.
    So what is the best practice? To simply make the "categoryId" a public variable, and create a new Event/Command to perform all this logic? Or is it ok to do it all in the Value Object setter?
    Thanks.

    Hi Eric,
    I can't speak for best practices, but the only logic I've ever added to a VO were getters: an example was a set of getters on an airline flight VO to get overall flight departure/arrival times/cities from an array of flight segments in a property of the VO.
    I feel uneasy (in the nicest possible way) about your VO for two reasons: firstly it has a strong dependency on bits of the Cairngorm framework to look up the category (and VOs normally don't need to depend on anything), and secondly the intent of Commands in Cairngorm is more to represent user gestures than to wire up VO properties (I often see people shoehorning stuff into Commands that might be better of as plain old business utility classes). I would rather see an UpdateCategoryCommand (that's what the user is trying to do?) that updates categoryId and hits a delegate to populate the category property.
    That said you might have a very good reason for doing this. Could you tell us where the code is that's setting categoryId, and if anything is using categoryUpdated?
    Cheers,
    Robin

  • Best Practice for setting bind variable when application loads

    I am using JDeveloper 11.1.2.3.
    When my application loads, the first unbounded page has a table populated by a named query.
    I would like to set the parameter used by the named query when the page loads, to populate the initial data that is displayed.
    What is the best practice for a solution to this issue?

    user6003393 wrote:
    I am using JDeveloper 11.1.2.3.
    When my application loads, the first unbounded page has a table populated by a named query.
    I would like to set the parameter used by the named query when the page loads, to populate the initial data that is displayed.
    What is the best practice for a solution to this issue?Hi,
    You can set the bind variable on VO by overriding prepareSession() method in Application Module check this http://docs.oracle.com/cd/E37975_01/web.111240/e16182/bcservices.htm#sthref357
    Setting bind variable on runtime http://docs.oracle.com/cd/E37975_01/web.111240/e16182/bcquerying.htm#CHDECJHD
    Zeeshan

  • Bad bind variable & best practice for delete

    I am working with three tables and very new to SQL. I need to create a procedure that will accept an ID and go through two sub tables and delete child records. Item is the main table. I am passing in the ID into the procedure and I want to use it as below. I keep getting a bad bind variable error message. I have verified that the table is setup as a number and my procedure accepts a number. I also want someone to review this from best practice as I am new to procedures.
    PROCEDURE DeleteItem (p_ItemID IN NUMBER, p_RowsAffected OUT number)
    IS
    p_RowsAffected NUMBER;
    -- select the itemdetail for the analysis
    CURSOR c_itemdetail
    IS
    SELECT
    itemdetailid
    FROM itemDETAIL
    WHERE itemid = :p_ItemID;
    BEGIN
    -- loop through each itemdetail and delete the itemdetailoutlay
    FOR r_itemdetail IN c_itemdetail
    LOOP
    BEGIN
    DELETE FROM ITEMDETAILOUTLAY
    WHERE itemdetailid = r_itemdetail.itemdetailid;
    COMMIT;
    END;
    END LOOP;
    -- delete the itemdetail
    BEGIN
    DELETE FROM ITEMDETAIL
    WHERE itemid = :p_ItemID;
    COMMIT;
    END;
    -- delete the main item
    BEGIN
    DELETE FROM ITEM
    WHERE itemdid = :p_ItemID;
    COMMIT;
    p_RowsAffected := SQL%ROWCOUNT;
    END;
    END DeleteItem;

    Hi,
    Welcome to the forum!
    As you may notice, this site normally compresses white-space. Whenever you post code, or any formatted text, on this site, type these 6 characters:
    \(small letters only, inside curly brackets) before and after each section of formatted text, to preserve spacing.
    I don't think you mean to use bind variables anywhere, so don't use colons before any variable names.  You were doing this correctly with p_RowsAffected; do the same thing with p_ItemID.
    Try this:PROCEDURE DeleteItem (p_ItemID IN NUMBER, p_RowsAffected OUT number)
    IS
    -- p_RowsAffected NUMBER;     -- Don't name local variables the same as arguments
    -- select the itemdetail for the analysis
    CURSOR c_itemdetail
    IS
    SELECT
    itemdetailid
    FROM itemDETAIL
    WHERE itemid = p_ItemID;     -- No : before p_ItemID
    BEGIN
    -- loop through each itemdetail and delete the itemdetailoutlay
    FOR r_itemdetail IN c_itemdetail
    LOOP
    BEGIN
    DELETE FROM ITEMDETAILOUTLAY
    WHERE itemdetailid = r_itemdetail.itemdetailid;
    COMMIT;
    END;
    END LOOP;
    -- delete the itemdetail
    BEGIN
    DELETE FROM ITEMDETAIL
    WHERE itemid = p_ItemID;     -- No : before p_ItemID
    COMMIT;
    END;
    -- delete the main item
    BEGIN
    DELETE FROM ITEM
    WHERE itemdid = p_ItemID;     -- No : before p_ItemID
    COMMIT;
    p_RowsAffected := SQL%ROWCOUNT;
    END;
    END DeleteItem;
    The most important "best practice" with PL/SQL is to avoid doing it whenever possible. 
    If SQL offers a way o do the same thing, it's usally best not to code anything in PL/SQL.
    Have you considered foreign key constraints, with "ON DELETE CASCADE"?  That way, you could simply "DELETE FROM item", and all the dependent rows in the other tables would automatically be deleted.   You wouldn't need to remember to call a procedure like this; in fact, you would have no need for a procedure like this.
    Given that you do have such a procedure:
    You're doing row-by-row processing, which some mad wags like to call "slow-by-slow" processing.
    For example, iYou're xplicitly finding each ItemDetailID separately, and deleting each one separately, like this:... CURSOR c_itemdetail
    IS
    SELECT
    itemdetailid
    FROM itemDETAIL
    WHERE itemid = p_ItemID;
    -- loop through each itemdetail and delete the itemdetailoutlay
    FOR r_itemdetail IN c_itemdetail
    LOOP
    BEGIN
    DELETE FROM ITEMDETAILOUTLAY
    WHERE itemdetailid = r_itemdetail.itemdetailid;
    COMMIT;
    END;
    END LOOP;
    It's more efficient for the system (and less coding for you) if you let SQL handle as much as possible, so do this instead...     DELETE FROM ItemDetailOutlay
         WHERE ItemDetailID IN
              ( SELECT itemdetailid
              FROM     itemDETAIL
              WHERE     itemid     = p_ItemID
    Do you really want to COMMIT 3 times?  0 or 1 times might be better.
    What happens if there is some kind of error, say, after you've delete rows form ItemDetailOutlay and ItemDetail, but before you've delete from Item?  Wouldn't you want the entire transaction to fail, and leave all three tables in a consistent state?  If so, either have the calling procedure COMMIT, or have a single COMMIT at the end of DelteItem.
    Edited by: Frank Kulash on May 6, 2010 2:25 PM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Best practice to keep on top of Binding in ADF?

    Hello,
    Today I had to change an adf table in my jsf page because I switched to a different view object and I tought I would be easier for a beginner like me to remove the adf table and add it again with the new binding automatically generated by the IDE.
    This part work but I have to say that in that table (read only table) I had a fillter with a select on choice that was binding to a different view. Of course I lost this filter when I remove the table but I had a backup of the previous jsf page so I added it again manually the one choice filter with a text editor. Worked good too but when I ran the page the one choice list was empty. Then I added to go to the binding section of the page and create a tree binding which create a iterator to link the binding to the data control for the data used by this one choice filter.
    So I conclluded that Jdeveloper remove the binding information when you remove in the jsp page the only component that used it. Could you confirm this? My understand is that when I removed my adf table I lost also some of the binding it was using.
    I added the binding tree in the binding section and it is working again. But I would like to get some best practices to deal with the binding in the ADF. I have the feeling to I could get lost quicky there and wondering why something is not working. How to keep on top of the binding?
    Stephane

    In addition to vinod let me pint out, that jdev automatically removes bindings from the pagedef whenever you remove a tag or component from the page using the view, the structure panel or the property inspector. Only removing a component Udolf the source view prevents this.
    This is not a bug, it's a feature. It helps to keep the pagedef small and clean. Beleave me, if your pagedef gets massed up, you'll get errors you don't connect to wrong bindings.
    So of you keep this in mind, it should not be a problem.
    Timo

  • Best Practice For ID value On Components

    I was just wondering what the best practice was for setting the ID value on ADF components. I have seen that on naming containers they recommend the length of the ID value be 7 characters or less to minimize the amount of HTML that has to be sent to the client. Should we just keep all ID fields as their default values which are relatively short or is it better to give them meaningful values? Any guidance would be appreciated.
    Thanks.

    Hi,
    It depends on the usage. If you are using client listeners, where you want to get the id of the component to process, you can name them to have some meaning. However, there is no harm in keeping the default id as it is.
    -Arun

  • What is the best practice concerning View Objects and List of values

    Hi,
    Let's take these two tables :
    Market_Descriptions
    Id
    Name
    Desc
    Language_Id
    Languages
    Id
    Code
    Desc
    Now, if I am generating these business components with the help of the wizard, I will be having two entities and two views.
    If I am creating a list of value on the field Language_Id in Market_Descriptions table, showing the language code, everything works fine as long as this is drop as a Form but not as a table or read-only form.
    What is the best practice for me to include/replace the language_id with the language code, since it is more user-friendly, on a read-only form or a table?
    Thanks.

    Hi,
    Always have LOV on the field which we want show it on UI. Suppose based on below scenario, If you want to display Langaugae Description on UI, have LOV on Desc but not on Language_Id. Even though we can set display attribute in LOV configuration, but it will work only in forms but not in tables. In tables it will show language id instead of description.
    Have LOV on Desc and make one more join with location Id in LOV configuration, so as soon as we select desc in LOV, location_id will be populated.
    here is the join condition inside LOV
    Languages.Desc = ViewAccessor.Desc
    Languages.Id - ViewAccessor.Desc
    Hope this will help you.
    Dileep.

  • Best Practices - Dynamic Ranking, Dimension Values to Return, etc.

    The pinned post says non-technical questions belong on the Business Forum. I can't find an Endeca-specific business forum. If there is one, please tell me where to find it.
    My question is about dynamic ranking and the initial display of only the top N dimension values with a "More..." option to see the rest of them.
    What's the current wisdom on this from a usability point of view? Use it, don't use it? If using it, show how many values initially?
    Or, if not using it, you instead set up a hierarchy of dimensions so that the user never has to look at 50 choices for something?
    This is not a technical question. What is the current wisdom? What are the best practices?
    Thanks!

    Dynamic ranking is a good choice only if all choices cannot be further grouped. In my practice most of the content can be normalized and restricted to a very limited set of options. Dynamic ranking with "more" is an easy way out and seems like a lazy take on content management.

  • Best Practice Regarding Maintaining Business Views/List of Values

    Hello all,
    I'm still in the learning process of using BOXI to run our Crystal Reports.  I was never familiar with the BO environment before but I have recently learned that every dynamic parameter we create for a report, the Business View/Data Connectors/LOV are created on the Enterprise Repository the moment the Crystal Report is uploaded.
    All of our reports are authored from a SQL Command statement and often times, various reports will use the same field name from the database for different reports.  For example, we have several reports that use the field name "LOCATION" that exists on a good number of tables on the database.
    When looking at the Repository, I've noticed there are several variations of LOCATION, all which I'm assuming belongs to one specific report.  Having said that, I see that it can start to become a nightmare in trying to figure out which variation of LOCATION belongs to what report.  Sooner or later, the Repository will need to be maintained a bit cleaner, and with the rate we author reports, I forsee a huge amount of headache down the road.
    With that being said, what's the best practice in a nutshell when trying to maintain these repository items?  Is it done indirectly on the Crystal Report authoring side where you name your parameter field identifiable to a specific report?  Or is it done directly on the Repository side?
    Thank you.

    Eric, you'll get a faster qualified response if you post to the  Business Objects Enterprise Administration forum as that forum is monitored by qualified support for BOE

Maybe you are looking for

  • Installing CE 7.1 SP3 on Vista

    I'm trying to install CE 7.1 SP3 on my laptop with Vista and I get an error message at the beginning of the install saying 'the subkey HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Automatic LiveUpdate Scheduler does not exist on the 'localhos

  • Obtaining Object Methods

    Problem: I am working with a list of class which are all subclasses of an abstract class. I have created an object of each method by the following code: Dent Hor = new Horisontal(); Dent Hin = new Hinged(); Dent I = new Instant(); Dent V = new Vertic

  • Downloaded PDF file on front end is not opening

    Hi, We have a requirement to open the Master Data Governance documents (which are stored as RAWSTRING in a DB table) from an ALV on double click. We are downloading the binary content(converting XSTRING to BINARY) as a file with appropriate extension

  • Implement the Application using DASHCODE

    Hi All, We have TimeTracker intra net software, where employee enter there daily project report times in that software. But some time employees are out of intra network, so they have to wait get in to network for enter there time. So can we achieve t

  • Another website glitch resulting in gift card charge without purchase being completed

    I have read similar complaints on this forum, but it appears Best Buy has an IT problem with their website. Last night I ordered 2 video games through their website, applied a gift card, and when I hit the final button to Place My Order was greeted w