BC4J Updateable while new flag

When setting the updateable flag to 'while new' I have come across a little problem.
All rows within a jclient panel which look at the attribute are view only, but when a new row is inserted and committed the field still stays view only.
I would expect the field to become view only upon commit as once committed the data can then be amended (but not updated) to produce a jbo error on row or field navigation.
Has anyone got a workaround / suggestion ?

A workaround would be to override the navbar's commit button action and force a refresh on the controls by calling rangeRefreshed(null) on the appropriate iteratorbindings that are being displayed or calling updateValuesFromRow(currentRow) on each of the control bindings where currentRow can be received from controlbinding itself (and if it is not null).

Similar Messages

  • LOV (attribute updatable while new)

    hi,
    I have a question about the following code :
    // jButton1.setModel(PanelLOVPersonView.createLovBinding(new JUPanelBinding("sec100.MypackageModule", this), jButton1, "UsrdefPersonView", null, "UsrdefPersonViewiewIter", new String[] {"Perid"}, "LOVPersonView", new String[] {"Perid"}, new String[] {"Surnam", "Fstnam", "Bldabbr", "Offnum", "Phnnum"}));
    // jButton1.setModel(PanelLOVPersonView.createLovBinding(new JUPanelBinding("sec100.MypackageModule", this), jButton1, "UsrdefPersonView", null, "UsrdefPersonViewiewIter", new String[] {"Usrnam"}, "LOVPersonView", new String[] {"Usrnam"}, new String[] {"Surnam", "Fstnam", "Bldabbr", "Offnum", "Phnnum"}));
    "Perid" and "usrnam" or both attributes from a view object ("UserdefPersonView")
    that are Updatable while new. If i run my jclient frame then the LOV button is disabled when i am on an existing row.
    But if i replace the above code with the following:
    jButton1.setModel(PanelLOVPersonView.createLovBinding(new JUPanelBinding("sec100.MypackageModule", this), jButton1, "UsrdefPersonView", null, "UsrdefPersonViewiewIter", new String[] {"Perid", "Usrnam"}, "LOVPersonView", new String[] {"Perid", "Usrnam"}, new String[] {"Surnam", "Fstnam", "Bldabbr", "Offnum", "Phnnum"}));
    then this feature does not happen,
    does anybody know why?
    And how we can make it work if we want to fill in both from the LOV?
    thanks,
    Bert.

    thank you very much for the answer it helped a lot.
    I wanted to disable a lov button when i was on an existing row and enable it when i am on a new row.
    c the code below.
    This mostly works but sometimes it doesn't.
    When i startup the frame there is an automatic query so i am on an existing row but the lov doesn't get disabled. The same when I insert a row and do a rollback.
    I can see (from the println) that the code gets executed (first the "navigated" and then the "rangeRefreshed".
    This is what i get from the System.out.printlns :
    navigated
    false -> so it gets disabled
    rangeRefreshed
    true -> but here it is enabled?
    So the lov has been enabled again between the navigated and the rangeRefreshed.
    Is this the expected behaviour?
    thanks,
    Bert.
    Ps: Your code to enable/disable the comm works correctly.
    panelBinding.findIterBinding("EmpViewIter").getRowSetIterator().addListener(new oracle.jbo.RowSetListener()
    * Invoked when the range changes.
    * @param event a description of the new ranges.
    public void rangeRefreshed(oracle.jbo.RangeRefreshEvent event){
    System.out.println("rangeRefreshed");
    System.out.println(jButton1.isEnabled());
    public void navigated(oracle.jbo.NavigationEvent event)
    System.out.println("navigated");
    oracle.jbo.Row r = event.getRow();
    // if (row != null)
    oracle.jbo.domain.Number n = (oracle.jbo.domain.Number)r.getAttribute("Deptno");
    if (n != null && n.intValue() == 30)
    mComm.setEnabled(true);
    labelComm.setEnabled(true);
    else
    mComm.setEnabled(false);
    labelComm.setEnabled(false);
    // oracle.jbo.domain.Char c = (oracle.jbo.domain.Char)r.getAttribute("RowState");
    String c = (String)r.getAttribute("RowState");
    if (c !=null && c.equals("NEW"))
    jButton1.setEnabled(true);
    else
    jButton1.setEnabled(false);
    System.out.println(jButton1.isEnabled());
    });

  • Oracle Strategy for the UIX & BC4J in the new JDeveloper version

    What is Oracle Strategy for the UIX & BC4J in the new JDeveloper version:
    - Like DataBinding
    - BC4J Integration
    - UIX controller
    - Internationalization
    - Supporting for Palm,phone and pager.

    Hi,
    Are these questions all BC4J specific?
    General databinding info is discussed here:
    What's the developement direction of UIX?
    For BC4J/UIX integration, in 9.0.5 we will continue to support our existing api's, but you can also use uix as the view and bc4j as the model in adf, which is described here:
    http://otn.oracle.com/products/jdev/htdocs/905/sod_otn.html#adf
    Aside from bug fixes, I don't think there are major changes in the controller/internationization. Did you have specific questions about the controller and internationalization?
    We are planning to support Palm web browser 2.0, but due to the timing of the release of a platform that supports it and our own schedules, I don't think it will be officially supported in the 9.0.5 release. We won't have phone or pager support in 9.0.5.

  • New field DBT.app_data, new flag DB_DBT_USERCOPY

    Studying the BDB 4.5.20 header file I noticed a new field in DBT:
    void* app_data;
    as well as a new flag:
    DB_DBT_USERCOPY.
    They are not documented. Are they meant to be public?
    Karl

    No.
    The flag and field are used by the Berkeley DB Java API to optimize data copies through JNI, they aren't intended to be public.
    Regards,
    --keith
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    Keith Bostic
    Oracle Corporation
    [email protected]
    keithbosticim (Yahoo IM)

  • [svn] 3504: New flag to allow a component to maintain a centered perspective transform , plus other minor transform cleanup.

    Revision: 3504
    Author: [email protected]
    Date: 2008-10-06 23:44:07 -0700 (Mon, 06 Oct 2008)
    Log Message:
    New flag to allow a component to maintain a centered perspective transform, plus other minor transform cleanup.
    setting the layout matrix or matrix3D now resets transform X/Y/Z to 0.
    setting the component's x/y/z or calling move or setActualSize no longer blows away non-standard transforms (i.e., shear).
    UIComponents can now maintain a centered perspective transform.
    Modified Paths:
    flex/sdk/trunk/frameworks/gumbo-manifest.xml
    flex/sdk/trunk/frameworks/mxml-2009-manifest.xml
    flex/sdk/trunk/frameworks/projects/flex4/manifest.xml
    flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as
    flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as
    flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/CompoundTransform.as
    flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as
    Added Paths:
    flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/Animate3D.as
    flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/Rotate3D.as
    flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/Animate3DInstance .as
    flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/Rotate3DInstance. as

    There are a couple of references which can be found on Portalstudio.oracle.com that are of some use:
    1. A FAQ for Portal 9.0.2.6 Export/Import http://portalstudio.oracle.com/pls/ops/docs/FOLDER/COMMUNITY/OTN_CONTENT/MAINPAGE/DEPLOY_PERFORM/9026_EXPORT_IMPORT_FAQ_0308.HTM
    2. Migration Instructions by Larry Boussard (BRUSARDL)
    3. Migrating Oracle Portal from Dev Systems to Production Systems bt Dheeraj Kataria.
    These are all useful documents for a successful first-time Export-Import. However, the limitations and lack of robustness I listed in my first post, make the process so time-consuming and error fraught as to not be a practical development strategy.

  • [SOLVED] lsattr: Inappropriate ioctl for device While reading flags

    I'm migrating to ext4 and I just ran lsattr on / to see if any of it was done. I'm receiving this message:
    lsattr: Inappropriate ioctl for device While reading flags on {dev, sys, proc}
    The many web sites that I found on this doesn't give me much insight. Is this something to be concerned about?
    By the way, I've already done the conversion and fsck seemed to go fine. I haven't run the defrag script yet.

    Ramses de Norre wrote:Have got the same on ext3, I guess that's because those directories are mountpoints for filesystems that exist only in ram (devfs, procfs etc.).
    That makes perfect sense. There is never a day that goes by when someone here doesn't teach me something. Thanks a lot.

  • BC4J tag - add new record only in child table using join query

    Hi,
    I have developed the struts base jsp for BC4J component application using jdeveloper wizard.
    i have first developed the BC4J component. using emp table and dept table,
    also developed the association between emp and dept , and create view object using created association.
    when i haae developed the the struts base jsp for BC4J applicaion using alerady created view object. it creates automatically DataEditComponent.jsp and DataTableComponent.jsp and etc...
    and when i want to add new row or record it automatically add the entry in both table ,
    in above scenario i have used dept as master and emp as child table.
    what is the solution , if i want to add row or record in only emp table.
    please help me

    Hi Reetesh,
    I have written following code into the ADD ROW button
    System.out.println("Coming in Click Event");
    OAApplicationModuleImpl am = (OAApplicationModuleImpl) pageContext.getApplicationModule(webBean);
    OAWebBean innerTablebean = (OAWebBean)webBean.findChildRecursive("region12");
    OATableBean innerTable = (OATableBean)webBean.findChildRecursive("innerTablebean");
    OAInnerDataObjectEnumerator enum = new OAInnerDataObjectEnumerator(pageContext,innerTablebean);
    while(enum.hasMoreElements())
    RowSet innerRowSet = (RowSet) enum.nextElement();
    Row []rowsInRange = innerRowSet.getAllRowsInRange();
    OARow newRow = (OARow) innerRowSet.createRow();
    OADBTransaction dbt = am.getOADBTransaction();
    Number b = dbt.getSequenceValue("PK_XX_BATCH_PROGRAM_PARAMETERS");
    newRow.setAttribute("ProgramId", b);
    newRow.setAttribute("ProgramParmId",b);
    newRow.setAttribute("ParameterName",new String(""));
    newRow.setAttribute("ParameterDataType",new String(""));
    newRow.setAttribute("ParameterInOutType",new String(""));
    innerRowSet.insertRow(newRow);
    Now the problem occurs only when there are more than one rows in parent table... As many rows are there in parent table that many times the rows are being added.
    With Regards,
    Sandip

  • What will happen if adding a new node with current cluster, while new node's CPU is slower quality?

    Hello,
    Say, I have a 3 nodes RAC, I want to add a new node to current cluster... while the new node's CPUs are slower than the others.. what will happen?
    (my concern is : can I add this new node successfully? if yes, can it anyway improve the whole cluster performance or not?)
    Thank you
    s9225

    Also you can refer MOS note : RAC: Frequently Asked Questions (Doc ID 220970.1)
    Can I have different servers in my Oracle RAC? Can they be from different vendors? Can they be different sizes?

  • No accounting document generated while new condition type is added

    Hi
    I added a new condition type to the pricing procedure. While creating the invoice if i try giving a value to the new condition type then i get the message "No accounting document generated", but when i leave it as blank then there is no problem with the a/c docs.
    I assume I haven't done the complete settings correctly. Pls help.
    I am using  RVAA01 as the pricing procedure for standard order.
    Regards,
    Sujai

    Hi,
    As I do not have access to your system, can not comment in details.
    But if I have to add a tax codition in pricing, what I would do is :
    Create a tax condition, assign it in tax procedure.
    Copy it as sales pricing condition.
    Assign it in pricing procedure.
    Create condition record for tax condition in VK19.
    Check tax code in FTXP & its assignment in OB40.
    Create condition record for MWST.
    I think you need to check the above configuration.
    Savita

  • Outbound IDOC not getting triggered while new master data is created

    Hi Experts,
    I am trying to trigger an outbound idoc for Cost Center master data when ever cost center is being created or cost center is being changed. (Usinf COSMAS)
    I have successfully made use of change pointers and now able to trigger the idoc when ever Cost Center is getting changed. But while creating new Cost center, IDOC is not getting triggered.
    I used the function module MASTERIDOC_CREATE_SMD_COSMAS for triggering the idoc.
    Could one of you please let me what would have gone wrong? Since IDOC is getting triggered while changing the master data but not getting triggered while creating new master data.
    Thanks in Advance,
    Vinoth

    Hello,
    when you activate BD21 for a message type, it creates a entry in the SAP tables. that these Cost Centers have been sent already and any susequent changes to this will trigger a IDoc.
    As for BD16, scheduling it wont help as, you need to specify the selection criteria, and i do not see how you will be able to dynamically get the selection criteria.
    Try BD95, and BD59 to create a change pointer for a field, so when ever this fields is modified (new/updated) an idoc will be triggered.
    regards,
    Abhishek

  • Object link selection (Required) by user while new version creation

    Hi All,
    In ECC 6 While creating the new version of DIR ,SAP easy DMS is showing pop up  to select the existing object link , how can we stop this and enable to copy the existing object link in new version which working fine in SAP R/3 4.7.
    Regards
    shiv

    Dear Shiv,
    you can change this behavior in the customizing of the document type in transaction DC10 for each object type.
    Just go to DC10 and mark the affected document type. Then click on "Define object links" and double click on the object type. On the next screen you should see a field called "When New Version". Here you can use the F4 help to choose which behavior you want to have.
    Best regards,
    Christoph

  • Metadata through user input from portal application while new check In

    Hi,
    We have a requirment to create new doc/html from portal end, and check in it into UCM with user populated metadata's
    I have few quetions
    - Can I user OOTB RichtextEditor taskflow with little customization.
    - Is it a easy option to add a check in form (custom taskflow).
    - or we have to create new custom taskflow and use CHECKIN_NEW service using RIDC api.
    Thanks
    Edited by: 953836 on Aug 21, 2012 2:20 AM

    You could go with the standard stuff, but everything depends on what user experience you want to achieve.
    a) doc/html
    What formats you want to support? HTML is OK, but .DOC (especially if it means MS-Word) might be a challenge
    b) you could use SSXA tags (see here: http://docs.oracle.com/cd/E23943_01/doc.1111/e13650/toc.htm ) which could do exactly what you ask for (via Contributor Data Files). Note, however, that this user experience is not often met with understanding. And even more important, mind this: Clarification on SSXA Support with WebCenter Portal
    c) you could also use CHECKIN_NEW_FORM (see here http://docs.oracle.com/cd/E23943_01/doc.1111/e11011/c04_core.htm#BABGBCHI ) and somehow consume its output in your custom code. By doing this, you could use Content's standard functionality, profiles, but yet, achieve the user experience similar to what Desktop Integration Suite provides.

  • Uninstall of old products while new ones are running

    Maybe a little paranoid, but I need to ask. We recently did the parallel upgrade/migration for Messaging from 5.2hf1.25 to JES MS 6.1hf.02 on the same server. So, we have the old version still installed in a different path than the new one. I want to know if it will be safe to uninstall the old one using the uninstall tool, or should I just delete that directory? If use the uninstall tool that came with MS5.2, will it remove anything that both versions could possibly be using (packages/patches)?
    What about other iPlanet components like iDA, webserver?

    I can't imagine that uninstalling 5.2 would bother 6.x. ditto iDA
    When you;re running the uninstaller for iMS, you have the option to preserve the mailstore. If it's still in the same place, you will need to do that.

  • TS3992 reset phone while new phone still restoring?

    It's taking a long time to restore my new iphone 5C with icloud.  That's fine- but I have to send back my old iphone 5 and i want to erase all content and settings.  If i do this, will it erase the cloud backup that the new phone is restoring from?

    Delete his user account and create your own, using your name.

  • HOWTO: Use BC4J With or Without DB Triggers

    This HowTo describes how to use BC4J, database sequences and triggers
    and what are the ramifications.
    INTRODUCTION
    BC4J has the ability to work with database sequences in order to obtain a
    unique value when inserting records. BC4J also has the ability to
    work either with a 'before insert' trigger which automatically creates
    a new unique value for the primary key or without a trigger. When not using
    a database trigger, BC4J also has the ability to obtain the sequence value
    and set the primary key value.
    Before discussing the ramifications of using one approach or the other, let's
    show examples of how to use both approaches:
    BC4J & sequences WITH a database trigger
    and
    BC4J & sequences WITHOUT a database trigger
    HOWTO DEMONSTRATION STEPS
    To illustrate both scenarios a simple database setup script is provided which
    creates two tables:
    CUSTOMER_NT which DOES NOT have a before insert trigger and
    CUSTOMER_WT which DOES have a trigger.
    Database Install Script:
    <code>
    drop trigger customer_insert_trigger;
    drop table customer_wt;
    drop table customer_nt;
    drop sequence customer_wt_seq;
    drop sequence customer_nt_seq;
    create sequence customer_wt_seq start with 1;
    create sequence customer_nt_seq start with 101;
    create table customer_wt(
    id number,
    name varchar2(30),
    constraint
    customer_wt_pk
    primary key (id)
    create table customer_nt(
    id number,
    name varchar2(30),
    constraint
    customer_nt_pk
    primary key (id)
    prompt Inserting data...
    insert into customer_wt (id, name)
    values (customer_wt_seq.nextval, 'Mickey');
    insert into customer_wt (id, name)
    values (customer_wt_seq.nextval, 'Goofy');
    insert into customer_nt (id, name)
    values (customer_nt_seq.nextval, 'Daffy');
    insert into customer_nt (id, name)
    values (customer_nt_seq.nextval, 'Porky');
    commit
    prompt Creating trigger
    create trigger customer_insert_trigger
    before insert on customer_wt for each row
    begin
    select customer_wt_seq.nextval into :new.id from dual ;
    end;
    </code>
    The next step is to create the DEFAULT Entity Objects and View Objects using
    the Business Components Wizard.
    USING BC4J WITH A DATABASE TRIGGER
    Let's modify the entity object CustomerWt so it can use the database trigger.
    Edit the entity object CustomerWt by right-clicking in the navigator.
    Click on the 'Attribute Settings' tab and edit the ID attribute.
    - Uncheck 'Mandatory'checkbox. This allows you to insert without a value for the primary key
    - Check 'Refresh after Insert'. This obtains the value from the database generated by the trigger.
    - Check 'Updateable While New'. Id is only updateable when inserting.
    Click finish to complete the wizard. Save all and recompile the project.
    Now let's test our work.
    In the navigator right-click the application module and select 'Test..'. This will launch
    BC4J's built in tester. Connect to the application.
    In the tester double-click the CustomerWtView view object to run a test edit form.
    After the edit form renders, navigate through the existing records using the navigate
    buttons on the edit form. Now let's insert a record to execute the trigger.
    click on the '+' button to insert a record. Enter a value in the 'Name' field and commit the change.
    Observe that a new value has automatically been inserted into the Id field.
    That's it! You have successfully used BC4J and a database trigger.
    Now let's try it without a trigger..
    USING BC4J WITHOUT A DATABASE TRIGGER
    Now edit the entity object CustomerNT so it doesn't need a database trigger.
    Similar to before, edit the entity object CustomerNt by right-clicking in the navigator.
    Click on the 'Attribute Settings' tab and edit the ID attribute.
    - Uncheck 'Mandatory'checkbox.
    - Check 'Updateable While New'.
    An additional step is also required. The Create method will have to be modified to extract
    the value of the sequence.
    In the Edit EntityObject Wizard click the Java tab and select Create method and click Finish.
    The create method is generated in your Java fil e. In the Workspace view of the Navigator,
    expand the CustomerNt entity object in the navigator. Double-click
    CustomerNtImpl.java to open it in the Source Editor. In the Structure pane, double-click
    create(AttributeList). Modify the Create method so it looks like this:
    <code>
    public void create(AttributeList attributeList) {
    super.create(attributeList);
    SequenceImpl s = new SequenceImpl("customer_nt_seq", getDBTransaction());
    Integer next = (Integer)s.getData();
    setId(new Number(next.intValue())); }
    </code>
    Save and compile the project.
    Now test the ViewObject CustomerNtView using the tester as before.
    In the edit form of CustomerNTView click on the '+' to insert a record. Observe that
    just as before a new value has automatically been inserted in the ID field!
    TO USE A DB TRIGGER OR NOT TO USE A DB TRIGGER.
    Using a Database trigger sometimes preferable if you have non BC4J applications
    also sharing the database. In this case it is still safest to just let the database
    update it's own primary keys.
    If you don't have any other non-BC4J applications sharing the database, then not using
    a database trigger is perfectly acceptable and can have slightly better performance.
    The important thing to remember is that the option is yours to use either approach!
    null

    Thank you for the reply Jonathon. I am using a ViewObject which
    consist of several tables. I haven't tried the DB trigger
    approach but just using the BC4 approach in overriding the
    create method.
    Here is the parent class create as a part of the
    FasNameImpl.java file which does the job correctly.
    public void create(AttributeList attributeList) {
    super.create(attributeList);
    SequenceImpl l_seq = new SequenceImpl
    ("SEQ_CUSTOMER_ID",getDBTransaction());
    Integer l_next = (Integer)l_seq.getData();
    setCustomerId(new Number(l_next.intValue()));
    This is when I triedpassing the value to the child table. But I
    can't figure it out. I think the link is working fine if I had a
    ViewLink deployed but it doesn't look like it's doing the job
    for ViewObject.
    I am trying to call the childclass.method
    (FasCustomer.setCustomerId(l_next);
    But I am getting error.
    Thanks a lot for your suggestions,
    Kamran
    703 696 1121

Maybe you are looking for