ADF Question: Set focus in table after ppr

Hi all,
I am using JDeveloper 10.1.3.3 with ADF and BC.
In my table I have two editable fields, itemCode and quantity.
When I hit enter in the itemCode, I execute a method in the backing bean, and the table is ppr refreshed.
After that, I want the focus to go to the next field, quantity.
I have tried following this example: http://www.bloggingaboutoracle.org/archives/focussing-conditionally-in-a-table-after-a-partial-page-refresh
However, the focusItem string never has the row index included. So the focus never gets set correctly.
Next I tried doing it via javascript, changing the focus after the event by adding a partial target to a script tag that sets the focus. However, the row index at this time is not what it was at the time of entering the itemCode.
It looks like the rowIndex (ie: form1:table1:rowIndex:quantity) is changing after the ppr event. At the beginning (when entering the item) it is 0, but after the ppr, it is 1 or 3 or something else...
How can I get this row id? OR how can I go about setting the focus to that next field (quantity) after the ppr?
Thanks,
Heather

Hi,
the row index should always be in synch with the underlying binding. So if you get the current rows position in the iterator then you know its index in the table
Frank

Similar Messages

  • ADF Tree setting focus back to parent node after deletion of child node

    Hi,
    Is there a way to get the focus back to the parent node (or rather any particular node) in a tree?
    I have a use case where we need to get the focus back to the parent node after a child node is deleted.
    Currently the focus is shifted to the next node in the tree, but the need is to get the focus shifted back to the parent node. Also the parent node should be re-invoked to populate to get the latest status after deletion of the child node.
    Any help/pointers?
    Thanks

    Thanks for the reply Frank.
    I saw the link http://sreevardhanadf.blogspot.in/2012/07/showing-next-row-as-current-row-after.html
    However the issue is since I am using custom created tree using POJO tree item (composite object).
    calling myTree.getWrappedData() doesn't gives me a handle to JUCtrlHierBinding and subsequent access to JUCtrlHierNodeBinding.
    my program gives me data like -
    List<MyTreeItem> treeData = (List<MyTreeItem>)treeModel.getWrappedData();
    because my tree model is build using -
    treeModel = new ChildPropertyTreeModel(items, "children");
    where items is List of <MyTreeItem>
    Hence I am unable to get a handle using -
    List nodeParentList = nodeParent .getKeyPath();
    I am programmatically able to invoke the parent node to get the fresh data, only issue is the focus/selection of that node is not happening
    Is there a way around?
    Thanks
    Sachin

  • Value is not getting set in messageTextInput item after PPR action

    Hi everyone,
    I have a page in which On selecting a value from a lov, the next messageTextInput item should be set to "dummy"(I am using setText() method for this). However its not getting set at that time . But if I apply the same code in click event of submitbutton, its getting set. i.e. some kind of page refresh event is required for this.
    Plz suggest me the way of achieving this through PPR.
    My code of controller is like this :
    public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
    super.processFormRequest(pageContext, webBean);
    OAApplicationModule am =
    (OAApplicationModule)pageContext.getApplicationModule(webBean);
    /* validation code for Preffered ordering Method LOV */
    if (pageContext.isLovEvent())
    String lovInputSourceId = pageContext.getLovInputSourceId();
    if(lovInputSourceId.equals("PreferredOrderingMethodLOV"))
    if(!selectedPrefferedOrderingMethod.matches("URL"))
    String v_ani = pageContext.getParameter("AribaNetworkId");
    if(!v_ani.matches("dummy") || v_ani.length()==0)
    OAMessageTextInputBean aribaNetworkIDTextInputBean =
    (OAMessageTextInputBean)webBean.findIndexedChildRecursive ("AribaNetworkId");
    String dummy = "dummy";
    aribaNetworkIDTextInputBean.setText(pageContext, dummy);//.setText(pageContext,"dummy"); // here its not getting set on page
    String s = aribaNetworkIDTextInputBean.getText(pageContext); // however its showing "dummy"here
    }

    Hi,
    OAMessageTextInputBean aribaNetworkIDTextInputBean =
    (OAMessageTextInputBean)webBean.findIndexedChildRecursive ("AribaNetworkId");
    String dummy = "dummy";
    aribaNetworkIDTextInputBean.setText(pageContext, dummy);//.setText(pageContext,"dummy"); // here its not >getting set on page
    String s = aribaNetworkIDTextInputBean.getText(pageContext); // however its showing "dummy"here
    In processFormRequest() method we should not change bean properties.
    Instead, achieve your requirement using
    row.setAttribute() method.
    -Anand

  • ADF Question: included jsp action firing after page load

    Hi all,
    I am using JDeveloper 10.1.3.3 and ADF + BC.
    Here is another interesting situation for you. I have a page with an included jsp at the top with tabbed navigation.
    My page is for entering an order. Users can have multiple orders "open" in other tabs at the same time. Users can also have many other non-order pages opened in tabs. We are using the same View Objects (Entity Based) along with Transient View Objects on each order.
    Each order tab needs to "remember" the orderId so that when the user clicks on a tab, the appropriate rows are set in the order that is to be "opened". This occurs in a tab's action() - setting the orderId and forwarding to the appropriate page (if different) or reloading the same page with the new id.
    On page load we try to get the tab's orderId and load that as the current row of all of our view objects. This should make it seem like they are all concurrently running.
    The problem is when going from order to order, once the tab is clicked, the page's OnPageLoad method runs BEFORE the action of the tab click is processed. Therefore the order that loads thinks it is the previous order, and does not load the correct View Object rows.
    Does anyone know how we can force the tab action to occur before the page load so that we can get the proper orderId?
    Thanks,
    Heather

    Thanks for your speedy reply Frank,
    We are using the onPageLoad from the OnPageLoadBackingBeanBase which implements the PagePhaseListener.
    In this we are doing something like:
            if (isPostback()) {
                String selectedTabNum =
                    EL.getAsString("#{TabCounter.currentSelectedTab}");
                String test = EL.getAsString("#{TabCounter.tabOrderId" + selectedTabNum + "}");
                System.out.println("tab num " + selectedTabNum);
                System.out.println( "testing " + test );
            }our tab counter (a session bean) has these two methods (among others):
        public void setCurrentSelectedTab(int currentSelectedTab) {
            this.currentSelectedTab = currentSelectedTab;
            for(int i=1;i<= 20; i++) {
                EL.set(BACKING_START+"selectedTab"+i+"}", false);
            EL.set(BACKING_START+"selectedTab"+currentSelectedTab+"}", true);
        public String getNextAvailableTab () {
            for(int i=2;i<=20;i++) {
                boolean isTab = (new Boolean (String.valueOf(EL.get(BACKING_START+"render"+i+"}")))).booleanValue();
                if (!isTab) {
                    return String.valueOf(i);
            return "0";
        }our tab header (request bean) has this method as the action for clicking a tab:
            System.out.println("handleTabNavigation");
            String componentId = actionEvent.getComponent().getId();
            String selectedTab = componentId.replaceFirst("tab","");
            int selectedTabNum = new Integer(selectedTab).intValue();
            EL.set("#{TabCounter.currentSelectedTab}", selectedTabNum);
            String tabType = EL.getAsString("#{TabCounter.tabType"+selectedTabNum+"}");
            if (tabType.equals("regular")) {
                String orderId = EL.getAsString("#{TabCounter.tabOrderId"+selectedTabNum+"}");
                EL.set("#{processScope.unfinishedHeaderId}", orderId);
            } else if (tabType.equals("standing")) {
                String orderId = EL.getAsString("#{TabCounter.tabOrderId"+selectedTabNum+"}");           
            }Thanks,
    Heather

  • How to set focus on MessageTextInput after clicking submit button

    Hi All,
    I have submit button and MessageTextInput, by clicking submit button i have to focus on MessageTextInput control.
    can any one tell me how to do this?
    Thanks
    Laukik Pachanekar

    Hi,
    As the submit button is clicked redirect the page to itself using
    pageContext.forwardimmediatelytocurrentpage(null,false,null);
    Now in process request use:
    import oracle.apps.fnd.framework.webui.beans.OABodyBean;
    OABodyBean oabean = (OABodyBean)pageContext.getRootWebBean();
    oabean.setInitialFocusId("<id of messsage text input>");
    Thanks,
    Gaurav

  • Setting focus after PPR in Adv. Table

    Hi all,
         I've seen some topics related with this question but in none of them I could find the answer. I have an Adv. Table which has PPR per line, in other words, Row1 has a MessageChoice with firePartialAction to enable or disable fields in the same Row. The PPR works fine, the problem is that after PPR the focus is tabbed out to somewhere else in the page. Is there a way to keep the focus on the same row and in the same field or move it to a specific field after PPR.
    Thanks in advance,
    Eduardo

    Eduardo ,
    What u said makes sense, but since previously to CU3 this profile option is not there, so, the thinking might be to show the consistent thing in new patch also, with a profile option to users, if they want tab out feature.
    Anyways, thats' immaterial as ur problem is solved. :)
    --Mukul                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • How to set current row in table after use tab key on inputText

    Hello all,
    My first post .., I'm newbie in ADF and I will try to explain my problem.
    For the moment we use ADF 11g (11.1.1.4), in a jsff page I have a table with an inputText column.
    On the valueChangeListener of the inputText, I invoke a method in a viewScope bean which call an EJB method, make some services in the EJB on the line modified. After that I refresh the VO and the table (because others values on the line have been modified) and reset the focus on the same inputText modified by the user with javaScript because focus was lost after refresh.
    So far, everything works fine.
    When I use the arrow keys to change the selected row in the table, it's work fine (focus is still in the next or previous inputText), but if user try to use tab key to change the current line, the inputText on the next line have the focus but the current row of the table is not changed (I think it's normal).
    My question : how can I change the current row after tab key pressed in this case ?
    I don't know if it's really clear, not easy to explain, don't hesitate to ask more details.
    Thanks in advance.

    Frank Nimphius wrote:
    Hi,
    My question : how can I change the current row after tab key pressed in this case ?
    Use a client event to listen for the keyboard entry and intercept the tab. The use af:serverListener to call the server to set the rowKey on the table and issue a PPR for the table to re-paint
    See sample 11 on http://www.oracle.com/technetwork/developer-tools/adf/learnmore/index-101235.html#CodeCornerSamples
    to learn about how to use the client listener and server listener
    FrankHi,
    Thanks a lot for your advices, I used the client and server listener
    I used this code on the method call in order to change the selection after key tab pressed, I don't know if it can be easier, but it works.
              if (LOGGER.isDebugEnabled()) {
              LOGGER.debug("START changeSelectedRow");
              RowKeySet oldRowKeySet = myTable.getSelectedRowKeys(); // get oldRowKeySet
              if (oldRowKeySet == null) {
                   if (LOGGER.isDebugEnabled()) {
                        LOGGER.debug("oldRowKeySet is null");
                   return;
              RowKeySetImpl newRowKeySet = new RowKeySetImpl(); // The new RowKeySet use to change the selectedRow
              DCIteratorBinding bindingIterator = ADFUtils.findIterator(MY_ITERATOR);
              bindingIterator.setRangeSize(-1);
              // set the new index of the current row.
              int index = bindingIterator.getCurrentRowIndexInRange();
              if (index < bindingIterator.getAllRowsInRange().length - 1) {
                   index++;
              bindingIterator.setCurrentRowIndexInRange(index);
              // get the current row after changed the index
              Row currentRow = bindingIterator.getCurrentRow();
              if (currentRow != null) {
                   ArrayList nextLst = new ArrayList(1);
                   nextLst.add(currentRow.getKey());
                   newRowKeySet.add(nextLst);
                   // set the new selectedRow
                   myTable.setSelectedRowKeys(newRowKeySet);
                   SelectionEvent selectionEvent = new SelectionEvent(oldRowKeySet, newRowKeySet, myTable);
                   selectionEvent.queue();
                   AdfFacesContext.getCurrentInstance().addPartialTarget(myTable);
              if (LOGGER.isDebugEnabled()) {
                   LOGGER.debug("END changeSelectedRow");
    Best Regards
    Benjamin

  • How to set focus on a textinput/poplist using PPR

    HI,
    Is it possible to use PPR to set focus on a Text input or Poplist.
    if Yes, which attribute in the UI Item we need to use?
    will the attribute 'Access Key' work for the same?
    If PPR is not an option then getting a java bean for the UI Item is the only option?
    Thanks,
    Gowtam.

    Gowtam,
    No, the two basic differences between PPR and fire action!
    1)Fire action submit the entire OA Page Form elements, while PPR only refreshes the form components of that particular region.
    2)When PPR event is done, framework neglects any other action done on the page.
    Now, like your basic question, why should u use PPR event ?Instead y not firaction always?
    The reason is the very first defination of PPR.If i have n number of items on my page, if I define every action as fire action after each event page will refresh, so even for a small update like vanishing a field, i have to refresh the entire page which will be unusual for the user because it will take some time to load if page has some heavy components like hgrids , tables etc. Thats y we prefer PPR event over fire action in case of individual events, which is much fast, refreshing only particular form items.
    In standard j2ee web applications, the same is done using DHTML and javascript.
    I hope i am clear.
    --Mukul                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • How do I set focus to a text field after I click a button that calls a webservice?

    I have a web service that returns back a table. In order to show the values in the table I had to check the re-merge Form Data on the Webservice Button.  My question is , How do I set focus to a field on the screen after re-merge happens.

    I was reading SetFocus documentation and it says
    You cannot use  setFocus with the form:ready, layout:ready, or initialize events.
    What I need is an event like doc:ready or someother event where I can put the set focus code in. doc:ready was triggered when the form first loads which is great and I was able to put my Initial setfocus. When I pressed the button that calls the webservice and thr re-merge happened doc:ready event was not triggered so now I am not sure where to put the set focus.

  • How to set focus on a input field in a selected row of a table?

    In a previous discussion (http://scn.sap.com/thread/3564789) I asked how to access an input (sap.m.Input) field of a selected row in a table. In the answer that was supplied I was shown how to get the items of the table. Then using the selected index to get the selected item get the cells. Then I could set editable on the proper cell(s). This worked fine.
    Now I need to set the focus on one of the fields. I tried something like this:
                var oNewLink = table.getSelectedItem();
                var oNewLinkName = oNewLink.getCells()[1];
                oNewLinkName.focus();
    But this doesn't seem to work.
    I have searched through other discussions and have seen this technique for putting focus on a field if you have its ID:
    sap.ui.getCore().byId(id_of_the_input_field).$().focus();
    In my case though I do not have an ID since the row and its cells are generated. How can I set focus on the cell of a certain row in a table?

    Hello Venkatesh. Yes that code does work. First I tried it on a table cell that was already rendered and it did work. The next time I tried it on a table row that was being added and it did not work there. So I added an on after rendering function for the table and added that code there. That did not work until I added a delay (timeout) to do a context switch before calling the focus and that worked.
    Once last thing though sometimes when I call focus on an input field (actually in a table row cell) if the field has text in it already the flashing cursor is at the beginning of the text and other times it is at the end of the text (which is the desired way). It depends on where I click in the row. Is there anyway to make sure the flashing cursor is at the end of the text when the focus is applied to a field that contains text?

  • Setting focus to inputText of newly created row in af:table

    Using Jdev Ps4
    Simple use case:
    I have an af:table with a few columns and a createInsert button.
    When I press the createInsert button, a new record is added to the table.
    How can I set focus to the first inputText of that newly created row?
    I have been looking for a solution online but all the examples online tell us how to set focus to components that already exist and you know the ID of. With the newly created row, you don't have the ID so you cannot set the focus.
    In this topic (which is quite old...) https://kr.forums.oracle.com/forums/thread.jspa?threadID=643924 Frank Nimphius explained that it would be difficult and he would pass it on to the developers.
    I haven't found any information if there are some enhancements in this area to make this work...
    I tried with using plain old javascript by looping through the dom structure but had no success in doing so...
    Thanks
    Yannick
    Edited by: Yannick Ongena on Apr 2, 2012 8:38 AM

    Yannick,
    can you check this?
    how to get focus on newly created row in table?
    ~Abhijit

  • How  to set focus on next row inputfield in table

    Hello all,
    How  to set focus on next row input field in table
    Please help.
    Thanks in advance.
    CSP

    Hi,
    use the following code
    wdThis.wdGetAPI().requestFocus(nodeElement, attribute)
    Ex:
    Provide the attribute and replace the nodeElement with that of yours
    IWDAttributeInfo attributeInfo = wdContext.getNodeInfo().getAttribute("Your attribute");
           wdThis.wdGetAPI().requestFocus(wdContext.currentContextElement(), attributeInfo);
    Regards
    Ayyapparaj

  • How to set focus programmatically in a table ?

    Sir,
    How to set focus programmatically in a table using javascript?
    Is it document.getElementById('form1:table1:i:column1').focus(); ?
    Thanks
    Stephen

    Repost

  • How to set focus on a custom PO Item screen field when in error?

    Hi All,
    I have an interesting situation that i'm wondering if others have solved.  We have extended the PO item table (EKPO) by adding two new fields.  We then have implemented two BAdI's:  ME_GUI_PO_CUST and ME_PROCESS_PO_CUST to add them to the ME21N/ME22N/ME23N screens and logic to do some validation, via these respective BAdI's mentioned.  Everything works perfectly - with one small issue.  When we are doing some validation via a method on the ME_PROCESS_PO_CUST - and "invalidate" the field (and throw an error) when it is in error - I also want to be able to "set focus" on the field in question (basically: go to the particular tab on the ME* screen and highlight the field).  I have tried using SET CURSOR FIELD *****  within this BAdI (ME_PROCESS_PO_CUST) - but doesn't seem to work.  Has anyone tried to do this and have come up with a solution?  Would be much appreciative if you shared it!!!  Thanks much.
    Cheers,
    Matt
    ERP version that we have is:  ECC 6.0

    Just have a look at oss note 310154 - ME21N/ME51N: Customer-specific check, generating error log.
    In short:
    Add your error messages in EXIT_SAPMM06E_012 (using specific macros).
    Sample code (provided in Oss note) :
      loop at tekpo where knttp eq 'X'.
        loop at tekkn where ebeln eq tekpo-ebeln and
                            ebelp eq tekpo-ebelp and
                            kostl eq space.
          if not tekkn-id is initial.
            mmpur_business_obj_id tekkn-id.
            mmpur_metafield MMMFD_ACCOUNTINGS.
          endif.
          mmpur_message_forced 'E' 'ZE' '777' '' '' '' ''.
        endloop.
      endloop.

  • R12 - Approach to Insert into custom table after payment is done

    Hi,
    I have a requirement to insert into a custom table after invoice payment in R12. Code units are already in place to load data from ap tables to custom one.
    I have identified 2 ways in which this can be done:
    1. Call from the business event oracle.apps.ap.payment
    2. Call after the program 'Send separate remittance advice' completes, again as a business event after the concurrent program completes i.e. to use 'Request Completed' business event.
    My questions are as below:
    1. Is there any other way in which I can write to a custom table after payment is done
    2. How else can after report trigger be fired for SRA in R12 (without customizing the standard SRA java conc pgm)
    3. When exactly business event 'oracle.apps.ap.payment' will be fired? Will it be fired for all payments irrespective of the way payment is done like thru PPR, payment workbench, etc?
    Please share your thoughts on this.
    Thanks,
    Kavipriya

    in our case, we have created a database trigger on IBY_PAY_INSTRUCTIONS_ALL, to insert the requisite data into custom tables whenever the payment status is "Ready for Printing"

Maybe you are looking for

  • Did a software update, and safari won't even launch now. Crash crash crash.

    This morning, my iMac ran an automatic software update. Now everytime I launch Safari 5.1.2, it immediately crashes.

  • How to enable Scheduling in Discoverer for Oracle users?

    Hi, For accessing discoverer, our users are uaing Oracle usernames. how can i enable scheduling for them? we have already enabled scheduling for users who use database login to use discoverer. but not able to link oracle users to database. are they l

  • What should i know to develop objects in CRM Web Shop

    Hi all, I am new to CRM Web Shop and would like to know what should I be knowing to do any development in CRM Web Shop? I am an ABAP Developer and can develop Web Dynpor's and BSP's using ABAP Work Bench. What else do I need to make my career as a We

  • Portlet caching in weblogic portal 10.3

    Hi, I implemented the following for testing portlet caching. 1) I have one JSR/168 portlet with cache enabled(Render Cacheable property set to true). This portlet displays time. 2) Have another JSP portlet which prints the cache names and size of the

  • Trouble uninstalling quicktime

    im trying to uninstall quicktime b/c my iTunes is messed up (i have to uninstall both iTunes and quicktime in order to fix the problem, according to other wall posts). When i try and uninstall this message comes up: Unhandled Exception error number: