Wednesday, July 27, 2016

Order Uploaded Search Page @ ADF

1.Create an Application with Project
2.Connect to DataBase
3.Create AM
4.Create VO

Query in VO::

select h.price_list_id as pricelist,r.customer_number,r.customer_name,h.sold_to_org_id,h.cust_po_number, h.order_number Sales_Order,h.attribute1 Price,h.attribute10
,h.booked_flag,''''||h.header_id||''''||',' Header_ID,to_char(h.creation_date,'MM-DD-YYYY HH:MI:SS') Creation_Date
from oe_order_headers_all h, ra_customers r
where h.sold_to_org_id = r.customer_id
and to_char(h.creation_date,'MMDDYYYY')='06142016'-- > sysdate-0.5
order by h.creation_date desc;

5.Open adfc-config-xml file(Double Click on it)(UnBonded TaskFlow)
6.Drag and "View" object on to adfc-config-xml
7.Rename as Order-Search-Page
8.Double Click on Order-Search-Page (.jsf page will be created(select blank page))
9.From Data Controls in Application window select the data control  drop on the (.jsf file)
   select Query
   select ADF Query Panel with Table
10.Change the heading names(your wish)


11. (Optional) you can change the skin type by double click on trinidad-config-xml file and change

 <skin-family>fusionFx</skin-family>
  <skin-version>v1.1</skin-version>

Run the page

OutPut::


END



Developing User Interfaces with ADF Faces Rich Client Components @ADF

Monday, July 25, 2016

Working with Bounded Task Flows, Regions and Routers @ ADF

Working with Bounded Task Flows, Regions and Routers @ ADF

Shipping Inquiry Details Page @ OAF

Shipping Inquiry Details Page  @ OAF


1. Create a New Workspace and Project
Right click Workspaces and click create new OAworkspace and name it as ShippingSearch. Automatically a new OA Project is also created. Name the project as ShippingInqDetails and package as Shipping.oracle.apps.fnd.ShippingInqDetails

2. Create a New Application Module (AM)
Right Click on SearchDemo > New > ADF Business Components > Application Module
Name -- SippingAM
Package --  Shipping.oracle.apps.fnd.ShippingInqDetails

3. Enable Passivation for the Root UI Application Module (AM)
Right Click on SearchAM > Edit SearchAM > Custom Properties >
Name – RETENTION_LEVEL
Value – MANAGE_STATE
Click add > Apply > OK


4. Bulid a qurey to get data regarding Shipping Inquire Details

SELECT distinct ool.ordered_item,wdd.tracking_number, ooh.cust_po_number,ooh.order_number,rct.trx_number,wdd.LAST_UPDATE_DATE,hcsua.location
,wdt.name,hcsua.attribute1,loc.POSTAL_CODE,sum(ool.SHIPPED_QUANTITY),nvl(wdd.attribute2,wdd.container_name),sum(rctl.quantity_ordered*rctl.unit_selling_price)
  FROM oe_order_headers_all ooh
             ,oe_order_lines_all ool
             ,wsh_delivery_details wdd
             ,wsh_deliverable_trips_v wdt
             ,wsh_new_deliveries wnd
             ,wsh_delivery_assignments wda
             ,ra_customer_trx_all rct
             ,ra_customer_trx_lines_all rctl,
             hz_locations loc,
             hz_party_sites party_site,
             hz_cust_acct_sites_all acct_site,
             hz_cust_site_uses_all hcsua
 WHERE  ooh.header_Id=ool.header_id
      AND wdd.source_header_id=ooh.header_id
      AND wdd.delivery_detail_Id=wdT.delivery_detail_id
      and wdd.delivery_detail_Id=wdA.delivery_detail_id
      AND wda.delivery_id=wnd.delivery_id
      and wdd.source_line_id=ool.line_id
      AND rctl.interface_line_attribute1=to_char(ooh.order_number)
      AND rctl.interface_line_attribute6=to_char(ool.line_id)
      AND rctl.interface_line_attribute3=to_char(wnd.delivery_id) 
      AND rctl.customer_trx_id=rct.customer_trx_id
      and acct_site.party_site_id = party_site.party_site_id
      AND loc.location_id = party_site.location_id
     and acct_site.cust_acct_site_id = hcsua.cust_acct_site_id
     and ool.ship_to_org_id=hcsua.site_use_id
           group by ool.ordered_item,wdd.tracking_number, ooh.cust_po_number,ooh.order_number,rct.trx_number,wdd.LAST_UPDATE_DATE,hcsua.location,wdt.name,hcsua.attribute1
      ,loc.POSTAL_CODE,nvl(wdd.attribute2,wdd.container_name)
      order by rct.trx_number desc


 6. Create a New View Object (VO)
Right click on SearchDemo > New > ADF Business Components > View Object
Name -- ShippingVO
Package -- Shipping.oracle.apps.fnd.ShippingInqDetails

In Step3 in Attributes Window select columns  and shuttle them to selected list

Add Qurey in VO
In Java page Select Generate Java file for View Object Class: ShippingVOImpl and Generate Java File for View Row Class: ShippingVORowImpl

7. Add Your View Object to Root UI Application Module
Select Right click on SearchAM > Edit SearchAM > Data Model >
Select ShippingVO and shuttle to Data Model list

8. Create a New Page
Right click on Project> New > Web Tier > OA Components > Page
Name -- ShippingInqPG
Package -- Shipping.oracle.apps.fnd.ShippingInqDetails

9. Select the ShippingInqPG and go to the strcuture pane where a default region has been created

10. Select region1 and set the following properties:
ID -- PageLayoutRN
Region Style -- PageLayout
AM Definition -- Shipping.oracle.apps.fnd.ShippingInqDetails
Window Title -- Shipping Inq Page Window
Title -- Shipping Inq Details
Auto Footer -- True

11. Add a Query Bean to Your Page
Right click on PageLayoutRN > New > Region
Select new region region1 and set following properties
ID – QueryRN
Region Style – query
Construction Mode – resultBasedSearch
Include Simple Panel – True
Include Views Panel – True
Include Advanced Panel – True

12. Add a Result Data Table to your QueryRN
Select QueryRN right click > New > Region using Wizard
In BC4J Objects page, Select your ShippingAM and then select your ShippingVO1

Note – DO NOT select Use this as Application Module Definition for this region checkbox

In Region Properties page, set Region ID value to ResultsTable and Region Style to table
In view Attributes page, select attributes from Available View Attributes list and shuttle them to
Selected View Atributes list:
All Columns
In Region Items Page, you can set ID, Style and Attributes Set. Currently we are going to set only Style as messageStyledText

13. Set and verify Your Results Table Region Properties
ID – ResultsTable
Region Style – table
AM – Please Donot put any AM
Rendered – True
Records Displayed – 10
Width – 100%
User Personalization – True

14. Set or Verify Column1 Item Properties
Search Allowed -- True
Sort Allowed – ascending
Initial Sort Seqence – first
Selective Search Criteria – True
User Personalization – True

15. Set or Verify Column2 Item Properties
Search Allowed – True
Sort Allowed -- ascending
Selective Search Criteria – True
User Personalization – True

Repeate For all Columns

16. Add Button under the Qurey Region 

Promt-- Export
Attributeset-- ImportExport

17. Write the Following Code on CO (Create new CO Shipping CO)

  public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
  {
    super.processFormRequest(pageContext, webBean);
      if(pageContext.getParameter("Export")!=null)
                      {
                       //array of Vo attr names which need not be written in csv file
                       String ss[]={"Location","OrderNumber"};//Here RecordNumber and BatchId are the attributes of VO that you donot want in your output file
                       downloadCsvFile(pageContext, "shippingVO1",null, "MAX",ss); //XxescTcInterfaceStageEOVO1 is the VO instance Name
                      }
  }
  
                        public void downloadCsvFile(OAPageContext pageContext,String shippingVO1,String file_name_without_ext,String max_size,String[] hidden_attrib_list)
                             {
                             OAViewObject v = (OAViewObject) pageContext.getRootApplicationModule().findViewObject("shippingVO1");
                                    if (v == null)
                                   {
                                   throw new OAException("Could not find View object instance " + "shippingVO1"
                                    + " in root AM.");
                                   }
                             if (v.getFetchedRowCount() == 0)
                             {
                             throw new OAException("There is no data to export.");
                             }
                             String file_name = "Export";
                             if (!((file_name_without_ext == null) || ("".equals(file_name_without_ext))))
                             {
                             file_name = file_name_without_ext;
                             }
                             HttpServletResponse response =  (HttpServletResponse) pageContext.getRenderingContext().getServletResponse();
                             response.setContentType("application/text");
                             response.setHeader("Content-Disposition","attachment; filename=" + file_name + ".csv");
                             ServletOutputStream pw = null;
                             try
                             {
                              pw = response.getOutputStream();

                             int j = 0;
                             int k = 0;
                             boolean bb = true;
                             System.out.println("inside try block");
                             if ((max_size == null) || ("".equals(max_size)))
                             {
                             k = Integer.parseInt(pageContext.getProfile("VO_MAX_FETCH_SIZE"));
                             bb = false;
                             }
                             else if ("MAX".equals(max_size))
                             {
                             bb = true;
                             }
                             else
                             {
                             k = Integer.parseInt(max_size);
                             bb = false;
                             }
                             //Making header
                             AttributeDef[] a = v.getAttributeDefs();
                             StringBuffer cc = new StringBuffer();
                             ArrayList exist_list = new ArrayList();
                             for (int l = 0; l < a.length; l++)
                             {
                             boolean zx = true;
                             if (hidden_attrib_list != null)
                             {
                             for (int z = 0; z < hidden_attrib_list.length; z++)
                             {
                             if (a[l].getName().equals(hidden_attrib_list[z]))
                             {
                             zx = false;
                             exist_list.add(String.valueOf(a[l].getIndex()));
                             }
                             }
                             }
                             if (zx)
                             {
                             cc.append("\"" + a[l].getName() + "\"");
                             cc.append(",");
                             }
                             }
                             String header_row = cc.toString() ;//+ "\n";
                             pw.println(header_row);
                             for (OAViewRowImpl row = (OAViewRowImpl) v.first(); row != null;row = (OAViewRowImpl) v.next())
                             {
                             j++;
                             StringBuffer b = new StringBuffer();
                             for (int i = 0; i < v.getAttributeCount(); i++)
                             {
                             boolean cv = true;
                             for (int u = 0; u < exist_list.size(); u++)
                             {
                             if (String.valueOf(i).equals(exist_list.get(u).toString()))
                             {
                             cv = false;
                             }
                             }

                             if (cv)
                             {
                             Object o = row.getAttribute(i);

                             if (!(o == null))
                             {
                             if (o.getClass().equals(Class.forName("oracle.jbo.domain.Date")))
                             {
                             //formatting of date
                             oracle.jbo.domain.Date dt = (oracle.jbo.domain.Date) o;
                             java.sql.Date ts = (java.sql.Date) dt.dateValue();
                             java.text.SimpleDateFormat displayDateFormat = 
                             new java.text.SimpleDateFormat("dd-MMM-yyyy");
                             String convertedDateString = displayDateFormat.format(ts);
                             b.append("\"" + convertedDateString + "\"");
                             }
                             else
                             {
                             b.append("\"" + o.toString() + "\"");
                             }
                             }
                             else
                             {
                             b.append("\"\"");
                             }
                             b.append(",");
                             }
                             }
                             String final_row = b.toString() ;//+ "\n";
                             pw.println(final_row);
                             if (!bb)
                             {
                             if (j == k)
                             {
                             break;
                             }
                             }
                             }
                             }
                             catch (Exception e)
                             {
                             // TODO
                             e.printStackTrace();
                             throw new OAException("Unexpected Exception occured.Exception Details :" + 
                             e.toString());
                             }
                             finally
                             {
                             pageContext.setDocumentRendered(false); 
                             try
                             {
                             pw.flush();
                             pw.close();
                             }
                             catch(IOException e)
                             {
                               e.printStackTrace();
                             throw new OAException("Unexpected Exception occured.Exception Details :" + 
                             e.toString());
                             }
                             }
                             }

18.Run the Page


(a).Enter any Value in Search

(b).Cust_po_number 


(c). Click on Export Button


(d). Save the File


END