[ADF] migration to ADF, pl/sql based DB api

We are planning to move one of our project to ADF (we using flex for now), we have all our DB working through the proc/functions API.
Its about 50+ entities, lots of rename/update/create api already exists and working well.
There seems a bit tricky to make ADF BC work through API, as I have found mere examples it looks like it more like exception from the rule, and every Entity and View BC is has to be rewritten by hand.
There are two frameworks around - [Avroms’s Package based API|http://www.avromroyfaderman.com/framework-for-database-api-based-adf-bc/framework-for-package-api-based-adf-business-components/] that is 3 years old it works for our testing, but I encounter strange behavior when using BLOB fields. As Avrom abandoned it and here is a not right place to ask questions about his framework – I’m really stuck with it 
Second framework is a evolution of the first one, Framework for Database API-Based ADF BC, and was hosted on oracle’s samplecode [is not avaible for now|https://database-api-based-adf-bc.samplecode.oracle.com/] , and there no way to get it.
What will be best practice to solve my problem:
1) Some simple way to build ADF BC on API, that is not obvious
2) Someone who can help with old framework to get it work in proper way
3) Try to convince PM to change the way new project work in ADF-native table/view way (it almost impossible, but who knows?)
4) ??? some suggestions
Thanks in advance

Yes, it is, but when I trying to use that framework and encountered some strange behavior when I have Blob columns in viewObject:
It looks like resultSet is missing first two rows.
With empty resultSet or when number of rows is below 2 I have an error:
(oracle.adf.model.connection.ConnectionException) JBO-29000: Unexpected exception caught: java.sql.SQLRecoverableException, msg=Closed Resultset: next
In case when number of rows is more then two – there is no error, but results is shown from third row.
Error can be reproduced in [Demo app|http://www.avromroyfaderman.com/wp-content/uploads/2009/05/packageapidemo.zip] :
1) Add blob field to Employees table
2) Modify GET_EMPS function to return new blob field
3) adding blob field to Employees entity and EmloyeesView
Thats make me stuck with it, as I have some blob fields in fundamental entities, so I can't proceed.
Avrom’s blog looks abandoned, and my comment there is still waiting for pre-moderation for a week+ and no responce from author through contact form.
I asked for newer framework version in the thread you pointing, but my post was deleted, assuming that all question on getting newer framework version must be pointed to Avrom or waiting for Frank to get his hands on project to make it EMG again.

Similar Messages

  • Advice for ADF migration.

    Hi ,
    We have an internal application made in forms/reports. As now Oracle's strategic product for future developement is ADF. So we are planning to migrate the same internal application on ADF. We have 2 options :
    1.We should use Jheadstart to migrate to ADF but then we also have to re-write all the functionality of PL/SQL ?? OR
    2. We should start developing the application from scratch in ADF?? Or
    Please advice.
    Thanks.

    Noman,
    Few comments:
    - if they build from scratch they still have to re-implement the functionality currently implemented using PL/SQL logic in Forms.
    - if they don't use the JHeadstart Forms2ADF generator they still can use JHeadstart with ADF to build the app from scratch. Actually, most existing customers are using JHeadstart that way.
    There is no easy answer for which option to choose. This depends on many factors, for example the structure of the forms app. I quote from the JHeadstart Developers guide:
    The amount of work that can be saved by using the JHeadstart Forms2ADF Generator very much depends on the structure of the Oracle Forms application at hand. The JHeadstart Forms2ADF Generator provides most savings for forms that have the following characteristics:
    +· Complex user interface, many (stacked) canvasses, many tabs, many list of values, and other display types+
    +· Standard-Forms data retrieval and data manipulation through blocks based on database tables, with master-detail relations defined between the block+
    +· PL/SQL logic mostly limited to user interface dynamics: conditionally showing/hiding user interface items, and conditionally changing the properties of user interface items. While JHeadstart does not convert PL/SQL logic, this type of logic is easily implemented in the ADF application because JHeadstart provides many declarative property settings to implement this behavior.+
    JHeadstart has made the deliberate choice to not automatically convert the PL/SQL logic to Java. The reasons for this are:
    +· It is impossible to automate the migration of a two-tier architecture (logic in Forms or in the database) to a three tier Model-View-Controller architecture as is common in JEE web applications, including ADF-based applications.+
    +· The architecture of the converted application should be identical to the best-practice architecture of an ADF application that is build from scratch. If the architecture is the same, the same skill set can be used to maintain both migrated applications and ADF applications build from scratch. In addition, by going for a best practice architecture, the application is more flexible, and can be maintained easier at lower cost.+
    +· When using the JHeadstart Forms2ADF Generator, you get this best-practice ADF architecture that is identical to ADF/JHeadstart applications that are built from scratch.+
    Note: Other Forms2ADF conversion tools currently available have taken a different approach. They focus on automating the conversion of PL/SQL to Java. The architecture of such a converted application is different from a best-practice JEE/ADF web application. The architecture is more Forms-like, sometimes even including typical forms constructs like “GO_BLOCK” in the converted Java source code. The user interface produced by these migration tools is often a Java applet.  If your primary intent is to move away from Oracle Forms, and you are less concerned about the structure and architecture of the target Java application, then these other conversion tools might be a valid choice. However, if you want to migrate to a best-practice ADF architecture, then the JHeadstart Forms2ADF Generator is the best choice.
    We offer this Forms2ADF Transformation Assessment Service:
    http://www.oracle.com/technology/products/jheadstart/OracleForms2ADFAssessment.pdf
    which helps the customer making the right choices and provides insight in total migration effort.
    Steven Davelaar,
    JHeadstart Team.

  • Migration of  ADF 10g application to ADF 11g(Portlet Customization Error)

    Hi,
    Currently we are doing a migration of ADF/Webcenter 10g appication to 11g(11.1.1.6) and in the current 10g application portlet is used which contains the file based content and can be customized using a specific role say(admin).
    We have almost done the migration using the Jdeveloper 11.1.1.6 and most of the pages along with the portlet content are coming similar to the 10g look and feel but whenever we want to do portlet customization using the specific role we are getting the below exception. The content is file based system and the details of the versions are as below
    10g Environment:
    OC4J version. Oracle Containers for J2EE 10g (10.1.3.5.0)
    JDK version- java version "1.5.0_06"
    Webcenter and it’s version : Webcenter 10g(10.1.3.5.0)
    ADF version. Oracle ADF 10g
    Jdeveloper 10.1.3.3.0
    11g Environment: Currently I am using Jdeveloper 11.1.1.6 with Integrated weblogic server
    webcenter extension used: oracle.webcenter.framework_bundle/oracle.webcenter.customization_bundle
    Error which I am getting during portlet customization:
    [2013-02-20T14:47:42.162+05:30] [DefaultServer] [ERROR] [] [oracle.portlet.binding] [tid: [ACTIVE].ExecuteThread: '14' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: portaladmin] [ecid: 39e706a46ad531be:31f43ddc:13cf6ad5231:-8000-0000000000000386,0] [APP:TEST_DEV#V2.0] An error has occured for Portlet Binding portlet3.[[
    java.lang.NullPointerException
    at oracle.adfinternal.model.portlet.binding.PortletModelImpl.getRequireIframe(PortletModelImpl.java:907)
    at oracle.adfinternal.model.portlet.binding.ActivityPortletModelWrapper.getRequireIframe(ActivityPortletModelWrapper.java:71)
    at oracle.adf.model.portlet.binding.PortletBinding.prepareRenderPhase(PortletBinding.java:455)
    at oracle.adf.model.portlet.binding.PortletBinding._refresh(PortletBinding.java:377)
    at oracle.adf.model.portlet.binding.PortletBinding.refresh(PortletBinding.java:969)
    at oracle.adf.model.binding.DCBindingContainer.internalRefreshControl(DCBindingContainer.java:3273)
    at oracle.adf.model.binding.DCBindingContainer.refresh(DCBindingContainer.java:2876)
    at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.prepareRender(PageLifecycleImpl.java:561)
    at oracle.adf.controller.faces.lifecycle.FacesPageLifecycle.prepareRender(FacesPageLifecycle.java:82)
    at oracle.adf.controller.v2.lifecycle.Lifecycle$9.execute(Lifecycle.java:224)
    at oracle.adfinternal.controller.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:197)
    at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.access$1000(ADFPhaseListener.java:23)
    at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener$5.before(ADFPhaseListener.java:402)
    at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.beforePhase(ADFPhaseListener.java:64)
    at oracle.adfinternal.controller.faces.lifecycle.ADFLifecyclePhaseListener.beforePhase(ADFLifecyclePhaseListener.java:44)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:352)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:222)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
    at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
    at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.portlet.client.adapter.adf.ADFPortletFilter.doFilter(ADFPortletFilter.java:32)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.webcenter.framework.events.dispatcher.EventDispatcherFilter.doFilter(EventDispatcherFilter.java:44)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.wcps.client.PersonalizationFilter.doFilter(PersonalizationFilter.java:75)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.webcenter.content.integration.servlets.ContentServletFilter.doFilter(ContentServletFilter.java:168)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:179)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.webcenter.lifecycle.filter.LifecycleLockFilter.doFilter(LifecycleLockFilter.java:151)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
    at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Any hellp or suggestion will be helpful for me to resolve this issue.
    Thanks in Advance
    Chetan

    Hi,
    given its a WebCenter question, you want to post it to the Webcenter forum: WebCenter Portal
    Frank

  • ADF Report output from PL\SQL Table

    Hi,
    I am some complex calcualtions in the report and the report has a fixed number of columns and reports. Is there any way i can do all the programming in pl\sql and call this procedure/package from ADF and return the pl\sql table type?
    Can i create a VO from pl\sql table?
    Thanks,
    Lakshmi.

    On Database
    create or replace type empRow as object (
    Employee_ID Number,
    First_Name Varchar2(20),
    Last_name Varchar2(25)
    create or replace type empTable as table of empRow;
    create or replace function getEmployees
    (aDepartmentID Number)
    return empTable
    PIPELINED
    as
    begin
    for rec in (select Employee_ID, First_Name, Last_name
    from employees
    where Department_ID = aDepartmentID) loop
    pipe row(new empRow(rec.Employee_ID, rec.First_Name, rec.Last_name));
    end loop;
    return;
    end;
    THEN create a VO based on this Query below:
    select * from table(getEmployees(:deptid)
    and you are ready to Go.

  • [ADF EMG] Update: ADF EMG Oracle Open World 2010 Unconference Sessions

    I teased in a previous forum post that I'd reserve publishing details about the ADF EMG Oracle Open World 2010 Unconference sessions till later. Well later is now, and I'm (you guessed it) excited to announce we have another full schedule at the Unconference. Read below for more details:
    Where and when?
    Location: Hotel Parc 55, 3rd Floor, Mason Room
    Map: http://www.parc55hotel.com/map-and-directions
    Date/time: Wednesday 22nd Sept 10:00-12:00
    Duration: 120min
    Topics and Speakers
    Oracle ADF 11g and Oracle WebCenter 11g Production Demo
    Andrejus Baranovskis - Red Samurai Consulting
    During his session Andrejus will demonstrate two production systems, the first a retail system, and the second for the education sector. Both systems are based on a standard Oracle development architecture - utilising ADF BC, ADF Task Flows, ADF Libraries and Oracle's ADF UI Shell. The second system in addition implements Oracle WebCenter Services - Composer, Discussions, Document Management and RSS feeds, providing a Web 2.0 platform.
    ADF BC 10g and ADF Faces 10g to ADF BC 11g and Trinidad, Live!
    John Flack – Information Engineer Synectics for Management Decisions, Inc.
    John will run a live lets-get-down-and-dirty demonstration of migrating a small ADF BC 10g/ADF Faces 10g application to ADF BC 11g and Apache MyFaces Trinidad. This will include steps to make the migration easier, the migration wizard, and how to clean up the application after migration, as well some differences between ADF Faces 10g and Trinidad. John will also show some steps needed which aren't documented, from some hard-earned real-life experience.
    Demonstration of UW-Madison's Scholarship Application
    Todd Hill & Ed O'Connor-Giles – Development Services Specialist and Technical Leader at the University of Wisconsin
    University of Wisconsin-Madison automates management, evaluation, and awarding of scholarships -- and the online application experience for students -- with an application built on Oracle ADF. In this session Todd and Ed from the university will demonstrate the application and their technical approach, discuss the many real-world technical challenges faced, and lessons learned in the course of the project.
    Integrating 3rd party tools/frameworks into ADF
    Gert Leenders - Product Manager at Axi Nv
    Gert will discuss their latest ADF project resulting in a real Java technology mash-up showing how ADF can be integrated with several different product. The core remains ADF but for the management of the business processes his team integrated JBoss jBPM, JBoss Drools as a business rule engine, and last but not least Alfresco & UCM as a content repository through the use of CMIS.
    ADF - How much do you really need to know?
    Sten Vesterli
    How much knowledge is enough? You could spend months or even years learning to master all aspects of ADF Business Components and ADF Faces, but you already know that you don't need to know everything. This presentations proposes a set of ADF skill levels and a way to classify application complexity - and a way to map these, so you know what skill levels you need in order to build a given application.
    Don't forget...
    Don't forget that the ADF EMG also has an on-schedule session on Sunday 19th:
    Session ID: S313445
    Location: Moscone West, Level 3, Room 3012
    Date/time: Sunday 19th Sept 14:00-15:00
    ...with the following well respected ADF and JSF speakers:
    • Frank Nimphius
    • Kito Mann
    • Aino Andriessen
    • Sten Vesterli
    We look forward to seeing you in San Francisco!

    Please note the Wednesday sessions have moved room to the Mason room. Same hotel, same date & time, just different room. The original post above has been changed.
    The Sunday session is still Moscone West Level 3 Room 3012.
    CM.

  • Business/Technical Decision - ADF or JHeadStart/ADF?

    Hi all.
    I'm posting this topic on both JDeveloper and JHeadStart forums.
    I'm planning to develop a system based on Oracle ADF framework (using ADF UIX or JSP as the view).
    I started developing some evaluating applications, and found that, although very powerfull, the ADF itself lacks some functionality regarding multi-row page handling.
    So a started looking at the JHeadStart 10g product, and found that it has many funcionalities the ADF framework itself does not provide.
    I'm really in a doubt about what technology to use, so I'd like you guys here to share experiences about the pros and cons of using one or other.
    If we have a product like JHeadStart, why some might decide not to use it? It's a matter of price constraint, or technical constraint, or both?
    What kind of problems I might face by using this "extended framework layer", and not my own extensions?
    I'll have to use in my project a lot of pages with multi-row insert, update and delete. If I do not use JHeadStart, I'll have to hand code many of the funcionalities that alreary exist in JHeadStart.
    Unfortunatelly, the examples regarding multi-row processing provided by the OTN tutorials are very poor in funcionality and easy-of-use, and are not comparable to the superiority of the one provided by JHeadStart.
    Thanks.
    Denis Ievenes

    Hi Denis,
    I work for AMIS, a software consultancy organisation in The Netherlands. We have used JHeadstart on 7 different projects and for different customers, ever since 2003. I think you make some important observations: JHeadstart offers you a lot of functionality through a combination of generation and run time libraries that you would otherwise have to develop yourself. And mind you, these pieces of code are definitely not the easiest ones: they require a thorough understanding of ADF (and ADF BC) and will take quite some time to develop. Using those pieces as provided by JHeadstart will yield a huge benefit. And then I am talking months of advanced development time.
    Another huge benefit from using JHeadstart is that developers who are not very experienced with ADFor Java and Web technology in general for that matter, can quickly become productive. JHeadstart through the declarative application design and the generation provides an easy entry level for all developers. Besides, it bundles many best practices of working with ADF in its runtime code. We have had developers with no prior knowledge of ADF Business Components, ADF Binding Framework or even UIX work along one or two experienced developers, and they were productive within two weeks time.
    The main reason I can see for NOT using JHeadstart is the fact that it is not an official product from Oracle. There is no official support and you may feel that it is not as safe to bet your money on as is perhaps the database or the application server. After all, would can promise that in 10 years time we will still have JHeadstart?
    While this is a valid argument, I should immediately put it in perspective. JHeadstart has been around since 2001, so it has definitely proven itself in terms of stability. What's more: we have been able to migrate (regenerate) applications from the earliest versions of JHeadstart up to the latest. But most importantly: JHeadstart comes with all run-time source code. And this is really accessible code with lots of comments etc. So if for some reason JHeadstart would no longer be supported by Oracle Consulting, you will have the run time code - Java middle tier as well as JavaScript Client Side. That is the code you would otherwise have had to build yourself. And you can pretend you did in fact develop it yourself and take it from there.
    Especially given the fact that you have a lot of multi-row handling in your application, I would not hesitate in recommending you would use JHeadstart.It will save weeks and weeks of development time, allowing you to focus on the business oriented functionality rather than the ADF oriented plumbing and wiring of the application.
    If you have more questions about our experiences with JHeadstart, you can always drop me an email ([email protected]).
    Best Regards and lots of luck,
    Lucas Jellema

  • Session Facade and Access to a Non SQL Based Persistent Data Store

    Hi,
    We are currently using jDeveloper 10.1.3.5 and Oracle Application Server 10.1.3.5. We develop all our applications as Java portlets using Oracle PDK and they are exposed through Oracle Portal.
    In our environment, the persistent data is stored on a combination of an Oracle database and a non SQL based persistent data store.
    The way we access the non SQL persistent data store is by posting a URL and receiving an XML document back in response. This mechanism is used both for enquiry and update of the persistent store.
    We have to create a new XML schema for each entity that we need to access and there are software changes on both our environment (Java) and the non SQL based persistent data store.
    In an attempt to shorten development times we are looking to start using ADF faces and EJB3.
    We have downloaded the SRDemo tutorial and made it work but there are some challenges.
    1. The SRDemo seem to have a very minimal implementation of a business layer. From what I can see, it is essentially some straightforward wiring between database attributes and their viewable representation. Is there a demo/tutorial containing a bit more meat in the business layer that you are aware of?
    2. Given our non SQL based persistent data store, how would you go about implementing EJB3 for such scenario. Is it recommended at all? How would you go about integrating the rest of the application (business layer and representation layer) to data arriving from such source?
    3. SRDemo is not intended to be exposed as a portlet. Is there a tutorial that we can use incorporating JSR168, ADF Faces and EJB3 in the same application? I also understand that there is a JSF-JSR168 bridge available. Can you provide some pointers here? Where can we find it? Would we be able to use it in jDeveloper 10.1.3.5?
    Regards

    Matt,
    The only way to associate an "x-axis" with a signal in the Write Data VI would be to feed it waveforms, which are constrained to use time as the x-axis unit. There is really no way around this, so in my opinion, the best solution for you would be to use the "rows are channels" conversion and write the frequency and amplitude values to the file independently. Then when you read the file in DIAdem, take the two channels and build a graph out of them there.
    Regards,
    E. Sulzer
    Applications Engineer
    National Instruments
    E. Sulzer
    Applications Engineer
    National Instruments

  • ADF table and ADF form on the same view object

    Hi,
    As per the ADF demos available on ADF site, I created a jsf page with 2 panels. One panel is an ADF table based on a view object. And the other panel is and ADF form based on the same view object. My requirement is that as I scroll through the records in the ADF table, the ADF Form should dynamically display the details of the record in the ADF table. My understanding is that this should be automatic. However, its not working as expected. What have I missed?

    Hi,
    Apply PPR for form that displays details.
    Like :
    <af:table id="t3">
    </af:table>
    <af:panelFormLayout id="pfl2" partialTriggers="t3">
    </af:panelFormLayout >

  • ADF Faces with ADF BC

    Hi everyone,
    I'm trying to map a <af:table> to an ADF Business Component. I can retrieve the records and I can also navigate doing Next and Previous, but I cannot do a Delete of a record. Do you know if there's any kind of "work arround" to use ADF Faces with ADF BC to do a delete or update, etc.?
    Here is the code, you can notice the: <af:tableSelectOne> tag to put the radio buttons colums to select which one to delete, and you can also notice the action="#{row.markForDeletion}" for the commandbutton to perform the delete.
    Jonas Jacobi wrote in his web blog on August 16 that he was going to post some samples for this "work arround" but I think he never posted them.
    Here is the code:
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://xmlns.oracle.com/adf/faces/EA12/html" prefix="afh"%><%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
    <%@ taglib uri="http://xmlns.oracle.com/adf/ui/jsp/adftags" prefix="adf"%>
    <adf:uimodelreference model="table_testUIModel"/>
    <%@ taglib uri="http://xmlns.oracle.com/adf/faces/EA12" prefix="af"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@ page contentType="text/html;charset=windows-1252"%>
    <html>
    <head>
    <H1>This is a Test</H1>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>my test page</title>
    <link href="css/blaf.css" rel="stylesheet" media="screen"/>
    </head>
    <body>
    <f:view>
    <afh:head title="tableSelectOne Demo"/>
    <af:panelPage>
    <af:table rows="3" var="row" value="#{bindings.CmSvcView1.rangeSet}" first="0">
    <f:facet name="selection">
    <af:tableSelectOne text="Select and ...">
    <af:commandButton text="Delete" action="#{row.markForDeletion}"/>
    </af:tableSelectOne>
    </f:facet>
    <af:column>
    <f:facet name="header">
    <af:outputText value="SvcId"/>
    </f:facet>
    <af:outputText value="#{row.SvcId}"/>
    </af:column>
    <af:column>
    <f:facet name="header">
    <af:outputText value="SvcNum"/>
    </f:facet>
    <af:outputText value="#{row.SvcNum}" styleClass="OraHeaderSubSub"/>
    </af:column>
    <af:column>
    <f:facet name="header">
    <af:outputText value="SvcName"/>
    </f:facet>
    <af:outputText value="#{row.SvcName}" styleClass="OraHeaderSubSub"/>
    </af:column>
    </af:table>
    </af:panelPage>
    </f:view>
    </body>
    </html>
    Thanks,
    Pablo (sorry for the long post)

    Thank you Gabrielle. At least now I have an excuse to tell my boss why I can't get it to work.
    Any idea when it may be available? Would it be a better idea to implement the table in plain vanilla JSF, and when ADF Faces is ready for ADF BC then do the migration?
    Are there any workarround to this problem?
    Thank you for your time,
    Pablo

  • Migratind ADFS 2 to ADFS 3

    Hi Guys
    we are looking into migrating our ADFS 2.0 to 3.0 One of our major concern is downtime as most of our infrastructure relies on this Server Role to authenticate.
    we would like to know if it's possible to run ADFS 2.0 and ADFS 3.0 simultaneously in our landscape then migrate our Rely Party Trusts one by one when it's more convenient for us (not sure if this is Microsoft Best Practice though), or it's a full
    migration that has to be done in 1 day as ADFS 2.0 can't coexist with ADFS 3.0
    Regards

    Hello,
    Please read this links:
    How to Build Your ADFS Lab Part4: Upgrading to Server 2012 R2 (Ask Premier Field Engineering (PFE) Platforms)
    Preparing to Migrate the AD FS Federation Server
    Regards

  • JDev 11g TP4: ADF tables and ADF form pop-ups PPR?

    I was hoping somebody could help me with the following please.
    I'm currently having a bit of an issue with ADF tables and ADF forms embedded in a pop-up, where the wrong record is shown in the popup. I suspect it's a PPR problem but am unsure. My scenario:
    1) I have the following table:
    CREATE TABLE "CHRIS_MUIR_DELETE_ME" (
    "ID" NUMBER(5,0)
    "SOME_COLUMN" VARCHAR2(20 BYTE)
    CONSTRAINT "CHRIS_MUIR_DELETE_ME_PK" PRIMARY KEY ("ID"));2) I have a default ADF BC EO/VO combination for this table.
    3) I have an ADF Faces RC page with a read-only table based on this VO:
    <af:table value="#{bindings.ChrisMuirDeleteMeView.collectionModel}" var="row"
       rows="#{bindings.ChrisMuirDeleteMeView.rangeSize}"
       emptyText="#{bindings.ChrisMuirDeleteMeView.viewable ? 'No rows yet.' : 'Access Denied.'}"
       fetchSize="#{bindings.ChrisMuirDeleteMeView.rangeSize}"
       selectedRowKeys="#{bindings.ChrisMuirDeleteMeView.collectionModel.selectedRow}"
       selectionListener="#{bindings.ChrisMuirDeleteMeView.collectionModel.makeCurrent}"
       rowSelection="single" partialTriggers="myDialog">
      <af:column sortProperty="Id" sortable="false"
        headerText="#{bindings.ChrisMuirDeleteMeView.hints.Id.label}">
         <af:outputText value="#{row.Id}">
            <af:convertNumber groupingUsed="false" pattern="#{bindings.ChrisMuirDeleteMeView.hints.Id.format}"/>
         </af:outputText>
      </af:column>
      <af:column sortProperty="SomeColumn" sortable="false"
         headerText="#{bindings.ChrisMuirDeleteMeView.hints.SomeColumn.label}">
        <af:outputText value="#{row.SomeColumn}"/>
      </af:column>
    </af:table>Note that rowSelection is set to "single".
    3) The page also includes a popup-dialog combo that shows the same data from the table (ie. they're based on the same VO) as an ADF Input Form:
    <af:popup id="myPopUp">
      <af:dialog type="okCancel" id="myDialog">
         <af:panelFormLayout>
            <af:inputText value="#{bindings.Id.inputValue}"
                label="#{bindings.Id.hints.label}"
                required="#{bindings.Id.hints.mandatory}">
               <f:validator binding="#{bindings.Id.validator}"/>
               <af:convertNumber groupingUsed="false" pattern="#{bindings.Id.format}"/>
            </af:inputText>
            <af:inputText value="#{bindings.SomeColumn.inputValue}"
                label="#{bindings.SomeColumn.hints.label}"
                required="#{bindings.SomeColumn.hints.mandatory}"/>
            </af:inputText>
         </af:panelFormLayout>
      </af:dialog>
    </af:popup>Note that the table's partialTriggers is set to the id of the dialog. This implies on return from the dialog, the table will update itself to reflect any changes.
    4) I have a data bound Create commandButton, + a simple Edit commandButton. The Edit button includes an <af:showPopupBehavior> to display the popup:
    <af:commandButton
        actionListener="#{bindings.Create.execute}" text="Create"
        disabled="#{!bindings.Create.enabled}"
        partialTriggers="table1"/>
    <af:commandButton text="Edit">
        <af:showPopupBehavior popupId="myPopUp"/>
    </af:commandButton>If you run the form with the following steps, you can reproduce my issue:
    1) Click the create button, this will create a blank record in the <af:table>
    2) Click the edit button and give the 2 fields values, press ok. Note this is reflected back in the table.
    3) Click the create button, you will now see another blank record in the <af:table>. Note that the current row selection highlight is on the new record.
    4) In the table select the original record, then the Edit button. Oddly the input form is showing the blank record, not the original record even though we selected it in the <af:table>
    This implies to me that I have to hook up a PPR event such that the fields on the popup know to update themselves when the user selects a new row in the table.
    I've tried setting the partialTriggers property for the popup, dialog and individual fields on the popup page to the table id, but this doesn't seem to work.
    Does anybody have any suggestions on how I'm meant to hook up the partialTriggers in this case? I'm at a bit of a loss to know what to do to solve this issue. Is it possible the table selectionListener isn't working?
    Thanks for your help in advance.
    Regards,
    CM.

    G'day gang
    This morning I had a chance to play with Pavle's suggestions, specifically the popup contentDelivery option, and it's solved the issue. Specifically changing the contentDelivery option to lazyUncached was the golden solution.
    As the popup component help states, the default functionality is: "lazy -- the default strategy described above. The content isn't loaded until you show the popup once, but then is cached."
    ....cached being the issue I was seeing.....
    While the lazyUncached options states: "lazyUncached -- the content isn't loaded until you show the popup, and then is re-fetched every subsequent time you show the popup. Use this strategy if the popup shows data that can become stale."
    The nasty thing about the lazy option is the fact that in the dialog it can show the previous cached result (even though you've selected a different record), and you can even appear to edit that cached result in the dialog, but when you press okay in the dialog and return to the previous table, it's updated the record you selected, not the cached result.
    Confusing, but not a bug if you understand the popup contentDelivery options.
    Frank, if you'd like it, I have the simple test case available to send you. But as it's not a bug I wont send it to you unless requested.
    Thanks to both of you for your assistance with this one. Once again your help is much appreciated! :)
    I'll take time out to blog about this in the next few weeks to assist others.
    Thanks & regards,
    CM.

  • How to write a  SQL based on a  view can get the best performance ?

    Hi ,
        I am thinking about performance of  sql based on VIEW .<b>For the best performance ,How to do when I create  and use a view ?</b>  for example , Should i use key in my where clause as select data from table?  (of cause ,this key refers to the key of table which structure the view. ) , <b>Could you give me any advice on creating and using view in term of performance</b> ?

    Hi Guixin Chen,
    Performance depends on various factors. The major key factors are:
    1.  Result Set should be Small
    2.  Amount of Data Transferred should be minimum.
    3.  Number of Data Transfers should be minimum.
    4.  Search Overhead should be minimum.
    5.  Database Load should be minimum.
    For more details, check the following docs.
    <b>Performance Notes</b>
    http://help.sap.com/saphelp_nw04s/helpdata/en/fc/eb3b7e358411d1829f0000e829fbfe/frameset.htm
    http://help.sap.com/saphelp_nw04s/helpdata/en/5b/320c40ac368f5ce10000000a155106/frameset.htm
    You can also check Performance by,
    1.  Transaction code ST05
    2.   From ABAP Workbench using the menu path Test Performance Trace.
    Dont forget to reward pts, if it helps ;>)
    Regards,
    Rakesh.

  • Sending email using PL/SQL based on a query result

    Hello all,
    I want to create a procedure using PL/SQL, based on a query result.Here is the scenario:
    I have multiple tables in Target and Source databases that I want to compare(not the whole table but queries on these tables) and if they differ, I want to shoot an email. I have some ideas how to implement this but not sure whether it is the best approach.
    select Acct_id, total from SourceTableA
    minus
    select Acct_id, total from TargetTableA
    select Acct_id, sum from SourceTableB
    minus
    select Acct_id, sum from TargetTableB
    If the result of any of above queries > 0 then I want to shoot an email and want to repeat this procedure in the morning every day.
    I know how to implement send_mail procedure using UTL_SMTP package and how to schedule tha job by dbms_job package. But I am not sure how to implement the result of minus query. In case if minus > 0 then I also want to send the name of tables in the email message where source and target tables are not same. Should i use cursor, variable or insert the result in a new table? any help would be highly appreciated. Thanks in advance.
    Khan

    Actually these queries are the part of our daily testing that we run everyday manually(after the scheduled ETL load) to see if there are any discrepencies between our datawarehouse tables and source tables. So instead of running these queries manually everyday we want to schedula a procedure that will shoot an email in case of any discrepency and indicate which tables have problems.

  • Master table detail table with SQL based read only VO with bind variables

    i have a page where i am displaying data as master table and detail table. both table VOs are based on SQL queries which use bind variables.
    i have a view link between vos of type 1:M
    i created master table detail table page by dropping detail iterator from data control panel under master and selecting master table detail table
    on my page i see detail table records getting populated only for first record of parent table.
    on changing parent record, child table shows same records and does not refresh
    i am using partial triggers on both tables to be populated on a button click as i need to pass some bind variables to VOs which are taken as input from users
    how can i show corresponding rows in detail table when parent record in table changes
    is it possible declaratively to have master detail table view when both VOs have bind variables
    jdev 11 1 1 5
    these are the SQLs used
    Parent SQL Based VO Query
    SELECT to_char(d.status_date,'yyyymmddhh24') TIME123, count(DISTINCT d.c4)
    FROM t1 d,
    t2 w
    WHERE w.c1 = nvl(:ou, w.c1)
    AND UPPER(w.c2) = UPPER(nvl(:tt, w.c2))
    AND d.c3 >= :startTime AND :startTime IS NOT NULL
    AND d.c3 <= :endTime AND :endTime IS NOT NULL
    AND d.c4 = w.c4
    AND UPPER(d.status) = 'CLOSED'
    GROUP BY to_char(status_date,'yyyymmddhh24') ORDER BY to_char(status_date,'yyyymmddhh24') DESC
    Child SQL Based VO Query
    SELECT w.c1,
    w.c5 - w.c6 processing_time,
    w.c3,
    w.c6,
    w.c7,
    w.c8,
    to_char(d.status_date,'yyyymmddhh24') TIME123 FROM t1 d,
    t2 w
    WHERE w.c2 = nvl(:ou, w.c2)
    AND UPPER(w.c3) = UPPER(nvl(:tt, w.c3))
    AND d.c4 >= :startTime AND :startTime IS NOT NULL
    AND d.c4 <= :endTime AND :endTime IS NOT NULL
    AND d.c1 = w.c1
    AND UPPER(d.status) = 'CLOSED' ORDER BY to_char(status_date,'yyyymmddhh24') DESC
    view link is based on column TIME123

    Instead of doing the master-detail layout by dragging the details over, can you try a new page where you first drag the master VO over and then drag the detail VO over, and then set partialTrigger from the detail to point to the master?

  • Related to migration of db from sql server to oracle 11 g

    We're trying to migrate a Sql server managment studio database to Oracle 11g using SQL Developer 4.0. We can successfully connect to both Sql server managment studion 8.0 and Oracle 11g using the tool, as well as click through the Migration Wizard and start the migration.
    This opens the Database Migration dialog box, which indicates the capture process starts normally. we get the following error:
    ora :01440 : can not insert null into migrlog (id column) ,
    \and then after some time , i get an error that migration failed
    i am not getting the reason,I thing it may be due to reason that , I have table's column in my source db with more than 30 character.
    If i am migrating one by one table . then it is not giving any error, and identifier name is getting shrink in 30 character. but i am not getting the view , stored procedure , indexes , and others
    then what is the solution  for that, somebody pls suggest any help?????????????               

    Pl do not post duplicates - related to migration of db from sql server to oracle 11 g
    Continue the discussion in your original thread
    The error message is explicitly clear
    ora :01440 : can not insert null into migrlog (id column)
    Your process is trying to insert a NULL value into the ID column, which presumably cannot be NULL

Maybe you are looking for

  • How to Auto-populate TextField in Acrobat x with a value determined by user check box selection?

    I have a group of 3 Check Boxes for user to select their Work Shift:  The check boxes are set up to be mutually exclusive (same name: "EMP_Shift", different Export Values: Day, Evening, Night). Form Field properties name:      EMP_Shift (for all 3 ch

  • PDF attachment are corrupted via email.

    When I open a PDF attachment via my emails it's corrupted with different colors over the page and I can't read it. Opening the same document from my laptop has no problem. I have also had the attachment resent. My iPad never had this problem until re

  • Creating barcode

    Hi gurus How to create system barcode and printer barcode,I tried in  se72,But there is no creating option,Can any one give the solution thanks vivek

  • Setting default value of document library column using powershell

    Created document library based on template which is using custom content type containing managed metadata based column. I can upload documents. Everything looks normal except when I visit Column default value settings page in DL settings, I get error

  • Table for cancelled excise document

    Hai, How do we know the cancelled excise document ? ( For ex, vbrk-fksto contains 'X' if billing document is cancelled.)