Monday, March 27, 2017

af:menu ADF

JUCtrlListBinding in adf

https://docs.oracle.com/cd/B14099_19/web.1012/b14022/oracle/jbo/uicli/binding/JUCtrlListBinding.html
https://blogs.oracle.com/jdevotnharvest/entry/how_to_access_selected_rows

A JUCtrlAttrsBinding class responsible displaying a list of values from a static list or a list calculated at runtime using another BC4J ViewObject/RowIterator. This binding operates in two ways:
  • To update attributes (default - LIST_OPER_SET_ATTRIBUTE)
  • To navigate a set of rows (LIST_OPER_NAVIGATE)

JUCtrlListBinding allDepartsmentList = 
           (JUCtrlListBinding) bindings.get("allDepartments");
    Object[] selVals = allDepartsmentList.getSelectedValues();


Thursday, March 23, 2017

Get the name of the jspx page in the Page Phase Listener PPL ADF

http://www.baigzeeshan.com/2011/05/how-to-run-java-code-on-every-page-load.html

        FacesContext fctx = FacesContext.getCurrentInstance();

        String viewId = fctx.getViewRoot().getViewId();

        System.out.println("Hello Page : " + viewId);

Struck thread error ; on View Object Inserting rows ADF WebLogic

http://dkleppinger.blogspot.com/2012/04/danger-of-using-default-settings-of.html

Friday, March 17, 2017

Expose App Module as Webservice ADF

http://waslleysouza.com.br/en/2014/07/expose-application-module-as-soap-web-service/
http://waslleysouza.com.br/en/2014/10/expose-adf-bc-restful-web-service/
http://www.awasthiashish.com/2015/12/create-rest-web-service-with.html
http://www.awasthiashish.com/2015/12/create-soap-web-service-with.html


Testing tools used ADF


  • Testing App module methods (Tool: JUnit )
  • Testing Pages (Tool: Selenium )
  • Load testing   (Tool; JMeter )

Thursday, March 16, 2017

Get rid of 2 scrollbars inside PanelStretchLayout (1 scroll for the PSL & 1 for the table) ADF

To get rid of the table scroll make sure you have the property for the table

af:table property fetchSize="1000"

Also make sure you don't have AutoHeightRows set/initialized


Saturday, March 4, 2017

Check if browser is chrome or not using Javascript in JSPX ADF

  <af:clientListener type="load" method="BrowserDetection"/>

          <af:resource type="javascript">
             function BrowserDetection() {
                var versionofIE = detectIE();
               
                //Check if browser is IE or not, if browser is not IE then method will return false other wise version number
                if (versionofIE !== false) {
                    alert("Please use Chrome browser for this module");
                }
                
             }
             
              function detectIE() {
                var ua = window.navigator.userAgent;

                var msie = ua.indexOf('MSIE ');
                if (msie > 0) {
                    // IE 10 or older => return version number
                    return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);
                }

                var trident = ua.indexOf('Trident/');
                if (trident > 0) {
                    // IE 11 => return version number
                    var rv = ua.indexOf('rv:');
                    return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);
                }

                var edge = ua.indexOf('Edge/');
                if (edge > 0) {
                    // Edge (IE 12+) => return version number
                    return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);
                }

                // other browser
                return false;
            }
              
              </af:resource>


                                         Navigator.userAgent Chrome:


Navigator.userAgent IE






Wednesday, March 1, 2017

NullPointerException at a UIComponent.encodeAll .. Weblogic/ADF

Please make sure the tag libraries for jsff or jspx pages are valid

e.g

<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
                xmlns:f="http://java.sun.com/jsf/core" xmlns:tr="http://myfaces.apache.org/trinidad">

the one in red could be the reason
   

intermittent issue like below might occur

oracle.adfinternal.view.faces.renderkit.rich.PanelCollectionRenderer$PanelCollectionHelper._renderAutoSizedContent(PanelCollectionRenderer.java:751)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelCollectionRenderer$PanelCollectionHelper._encodeAll(PanelCollectionRenderer.java:949)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelCollectionRenderer$PanelCollectionHelper.access$600(PanelCollectionRenderer.java:634)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelCollectionRenderer.encodeAll(PanelCollectionRenderer.java:495)
        at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1600)
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:525)
        at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:1217)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1786)
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:647)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer._encodeCenterPane(PanelStretchLayoutRenderer.java:1308)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer._encodeMiddleForFlowing(PanelStretchLayoutRenderer.java:659)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer._encodeMiddlePanesFlowing(PanelStretchLayoutRenderer.java:523)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer._encodeMiddlePanes(PanelStretchLayoutRenderer.java:359)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer.encodeAll(PanelStretchLayoutRenderer.java:315)
        at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1600)
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:525)
        at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:1217)

        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1786)