We will perform the below listed task in order to complete our assignment
1. Create Object(Table or Tables)
2. Create Application Module
3. Create EO
4. Create VO
5 Create Page
6. Create Controller
7. Test Page
--------------------------------------------------
Create table.
create table apps.xx_import_csv_data
(
column1 varchar2(100 byte),
column2 varchar2(100 byte),
column3 varchar2(100 byte),
column4 varchar2(100 byte),
column5 varchar2(100 byte),
last_update_date date not null,
last_updated_by number not null,
creation_date date not null,
created_by number not null,
last_update_login number
)
tablespace apps_ts_tx_data
pctused 0
pctfree 10
initrans 1
maxtrans 255
storage (
initial 128k
next 128k
maxsize unlimited
minextents 1
maxextents unlimited
pctincrease 0
buffer_pool default
)
logging
nocompress
nocache
noparallel
monitoring;
-------------------------------------------
Create Application Module
Navigation:
Right Click on Project -->New -->Business Tier -->ADF Business Components -->Application Module --> Press OK button.
New Window will appear to you which contains 5 steps
Step 1:
Specify Package called path where you want to save your application Module
E.g : Package: oracle.apps.fnd.server
Specify package name
E.g: Name:ImportcsvAM
Press Next Button
Step 2: Make sure in Data Model your Application Module is appearing and Press Button Next
Step 3:Press Button Next
Step 4: Check the Generate Java File(s) checkbox in Application Module Class: ImportcsvAMImpl to generate the ImportcsvAMImpl java class. (It is already checked by default.)
Step 5: In Finish window, Press Finish Button
-------------------------------------------
Create Entity Object
Navigation:
Right Click on Project -->New -->Business Tier -->ADF Business Components -->Entity Object --> Press OK button.
New Window will appear to you which contains 6 steps
Step 1: Specify the Entity Object Name
E.g : ImportcsvEO
Specify Package or Path oracle.apps.fnd.schema
Select Database object
E.g: XX_IMPORT_CSV_DATA
Press Button Next
Step 2: Press Button Next
Step 3: Press Button Next
Now popup message will appear front of you as we did not define any primary key. Therefore, it will consider ROWID as primary key. Press Yes
Step 4: Check Create Method, Remove Method and Validate Method
Press Button Next.
Step 5: Here you have a option to VO belongs to EO but we will not create and we will Press Button Next.
Step 6: In Finish window, Press Finish Button.
-------------------------------------------
Create View Object
Navigation:
Right Click on Project -->New -->Business Tier -->ADF Business Components -->View Object --> Press OK button.
New Window will appear to you which contains 8 steps
Step 1: Specify the View Object Name
E.g : ImportcsvVO
Specify Package or Path oracle.apps.fnd.server
select Radio Button Updatable Access through Entity Objects
Press Button Next
Step 2: In Available list go to Oracle.apps.fnd.schema and shuffle ImportcsvEO to selected list
Press Button Next
Step 3: Shuffle the required columns to selected list and Press Button Next
Step 4: Press Button Next
Step 5: Press Button Next
Step 6: Press Button Next
Step 7: Check the checkbox View Row Class: ImportcsvVORowImpl for both the Generate Java File and Accessors checkbox
Step 8: In Finish window, Press Finish Button.
Linking the view object to the application
module(VO to AM)
To link the view object to the application
module, perform the following steps:
- In the Application Navigator tab, double-click the ImportcsvAM
- In the Application Module Editor select the Data Model node.
- Expand the oracle.apps.fnd.server package, and click on the ImportcsvVO view object.
- Shift the ImportcsvVO from Available View Objects: to Data Model: by clicking on the > button
Create Page
Right Click on Project -->New -->Web Tier -->OA Components -->Page --> Press OK button.
New Window will appear, here you need to Name your page and specify package.
Name: ImportcsvPG
Package: oracle.apps.fnd.webui
Press Buttons OK
Renaming the default region (PG)
- In the Application Navigator tab, click on the ImportcsvPG.xml page
- In the Structure pane, click on the item ImportcsvPG --> region1 node.
- Now in the Property Inspector, set the following properties ID: PageLayoutRN
AM Definition: oracle.apps.fnd.server.ImportcsvAM
Window Title: Import CSV File Window
Title: Import CSV File - Click on the Save All button from the toolbar. Run the page
- Click the ImportcsvPG.xml in the Applications Manager and the page
components will appear in the Structure pane. - In the Structure pane, right-click PageLayoutRN and select New | Region from
the pop-up menu. - In the Property Inspector, set the following properties:
ID: ImportcsvRN
Region Style: defaultSingleColumn - Click on the Save All button from the toolbar.
Navigation:
Right Click on PagePayoutRN -->New -->Item
Setting item properties
In the Structure pane, click on the Item attribute and set the following properties:
ID: MessageFileUpload
Item Style: MessageFileUpload
Navigation:
Right Click on PagePayoutRN -->New -->Item
Setting item properties
In the Structure pane, click on the Item attribute and set the following properties:
ID: Go
Item Style: SubmitButton
Attribute Set :/oracle/apps/fnd/attributesets/Buttons/Go
Create Controller
Navigation:
Right Click on PagePayoutRN -->Set New Controller
New Window will appear to you, you need to specify Package and Name
Package: oracle.apps.fnd.webui
Name: ImportcsvCO
Add below listed code in processFormRequest
OAApplicationModule am = (OAApplicationModule) pageContext.getApplicationModule(webBean);
OAViewObjectImpl vo =
(OAViewObjectImpl)am.findViewObject("ImportcsvVO1");
OAViewObjectImpl csvVO =
(OAViewObjectImpl)am.findViewObject("ImportcsvVO1");
if (pageContext.getParameter("Go") != null) {
//Get Data of uploaded CSV file
DataObject csvUploadData =
pageContext.getNamedDataObject("MessageFileUpload");
//Declare Variable that will be used in reading uploaded file
String fileName = null;
String contentType = null;
Long fileCapacity = null;
BlobDomain uploadStream = null;
BufferedReader inReader = null;
try {
fileName =
(String)csvUploadData.selectValue(null, "UPLOAD_FILE_NAME");
contentType =
(String)csvUploadData.selectValue(null, "UPLOAD_FILE_MIME_TYPE");
uploadStream =
(BlobDomain)csvUploadData.selectValue(null, fileName);
inReader =
new BufferedReader(new InputStreamReader(uploadStream.getBinaryStream()));
fileCapacity = new Long(uploadStream.getLength());
} catch (NullPointerException ex) {
throw new OAException("Please Select an CSV File to Upload it to Database!!!",
OAException.ERROR);
}
try {
String wholeLine = "";
long counter = 0;
String[] seperatedCells;
while (((wholeLine = inReader.readLine()) != null))
{
//Split the deliminated data and
if (wholeLine.trim().length() > 0) {
//split whole line to cells
seperatedCells = wholeLine.split(",");
Row row = vo.createRow();
vo.insertRow(row);
row.setNewRowState(Row.STATUS_INITIALIZED);
row.setAttribute("Column1",seperatedCells[0]);
row.setAttribute("Column2", seperatedCells[1]);
row.setAttribute("Column3",seperatedCells[2]);
row.setAttribute("Column4", seperatedCells[3]);
row.setAttribute("Column5", seperatedCells[4]);
}
}
} catch (IOException e) {
throw new OAException(e.getMessage(), OAException.ERROR);
}
am.getTransaction().commit();
pageContext.forwardImmediately(
"OA.jsp?page=/oracle/apps/fnd/webui/ImportcsvPG",
null, OAWebBeanConstants.KEEP_MENU_CONTEXT,
null,
null,
true,
OAWebBeanConstants.ADD_BREAD_CRUMB_NO);
throw new OAException("CSV File Uploaded SuccessFully!!!",
OAException.CONFIRMATION);
}
-------------------------------------------
Test Page
Navigation:
Right Click on ImportcsvPG -->Run