Add asynchronous Javascript tag in ADF pages.

I have got a requirement to add asynchronous javascript to ADF pages and started using af:resource component but there is no option to add custom attribute for af:resource component. But here is the way..

Page content:

    <af:document id="d1">
      <af:form id="f1"></af:form>
      <af:clientListener method="sayHello" type="load"/>
      <f:facet name="metaContainer">
        <f:verbatim>
          <![CDATA[
          <script src="../scripts/tester.js" async></script>
           ]]>
        </f:verbatim>
      </f:facet>
    </af:document>

Application structure 


View cwallet.sso content from ADF project.



When using a file-based credential store with ADF applications, credentials will be stored in a cwallet file (cwallet.sso)

We can use orapki command to get an overview of what’s inside the file.  orapki.bat file will be available in \oracle_common\bin install location.

Try below commants to view file contents.


cd C:\xxxx\install\oracle\11.1.1.9.0\FMW\Middleware\oracle_common\bin

orapki wallet display -wallet C:\xxxx\Workspace\11.1.1.9.0\dev\xxxx\xxxx\Application_Name\src\META-INF\cwallet.sso


Refresh Taskflow region from page.


Refresh ADF taskflow region is a common use case in most of the ADF applications. There are few ways to refresh taskflow using programmatic approach and declarative approach.

Using ADF internal API to refresh taskflow region is one of the anti pattern and oracle is not recommending to use this approach.

I am big fan of declarative approach and that saves development  time and easy for code maintenance.

I would recommend below declarative approach to refresh/reinitialize ADF taskflows.

1. Create a variable called "myViewTFRefreshFlag" in base page's page definition under executables --> variables with boolean type and default value="false".


 

2. Create  an attribute definition value under bindings using "myViewTFRefreshFlag" variable.



3. Open your taskflow and create an input parameter called "refreshFlag" with 'Boolean' type.



4.  Drag and drop your taskflow in base page and change refresh property to "ifNeeded" from page definition.



5. Trigger taskflow refresh action from your page using button or link by changing the value of "myViewTFRefreshFlag1" attribute using af:setPropertyListener.




Download application here