Sie sind auf Seite 1von 7

Upload csv file using oracle OAF

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
Page 1 of 7
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: ImportcsvAMImplto 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

Page 2 of 7
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:
1. In the Application Navigator tab, double-click the ImportcsvAM

2. In the Application Module Editor select the Data Model node.

3. Expand the oracle.apps.fnd.server package, and click on the ImportcsvVO view


object.

4. Shift the ImportcsvVO from Available View Objects: to Data Model: by clicking on
the > button

-------------------------------------------

Create Page

Page 3 of 7
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)


1. In the Application Navigator tab, click on the ImportcsvPG.xml page
2. In the Structure pane, click on the item ImportcsvPG --> region1 node.
3. 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
4. Click on the Save All button from the toolbar. Run the page
Adding a region (RG)

1. Click the ImportcsvPG.xml in the Applications Manager and the page


components will appear in the Structure pane.

Page 4 of 7
2. In the Structure pane, right-click PageLayoutRN and select New | Region from
the pop-up menu.
3. In the Property Inspector, set the following properties:
ID: ImportcsvRN
Region Style: defaultSingleColumn
4. Click on the Save All button from the toolbar.
Adding item to hold path

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

Adding item for GO Button

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");

Page 5 of 7
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]);

Page 6 of 7
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

Page 7 of 7

Das könnte Ihnen auch gefallen