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?
KarlNo.
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) -
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. asThere 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 meHi 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 -
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
s9225Also 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,
SujaiHi,
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,
VinothHello,
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
shivDear 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 AMYou 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!
nullThank 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
-
Linking tables in Crystal with no relationship
I have three tables i need to link together. The first two have something in common where I it's no problem...but the problem is I require a third table where there is no common factor. I was told connecting a distribution table to this would work
-
Why is iOS7 so slow on my iphone4?
-
Using my main iMac computer and iDVD software, I have just completed my fifth attempt to make an DVD project. I am unable to have a disc that plays... error message says that I'm inserting a 'blank disc'.. but if you look closely, one can see the pro
-
Ok why is it needed to have IE installed on my Windows 7 computer? I had windows IE uninstalled on another partition and a while after I started getting issues with skype. I don't use this partition much but then I started to investigate the issues.
-
Running latest OS