Posted by: oracleworld | January 15, 2009

Oracle E-Business Suite Release 12.1 Previewed

Latest release offers significant enhancements across human resources, financials, supply chain and CRM applications.

Building on Oracle’s ‘Applications Unlimited’ program, Oracle previewed the Oracle E-Business Suite Release 12.1 at Oracle OpenWorld. The Oracle E-Business Suite Release 12.1 is expanding upon the global foundation established with Release 12 by delivering 9 new products and significant functional improvements across human resources, financials, supply chain management, procurement, projects, master data management and customer relationship management applications.

Customers who rely on the Oracle E-Business Suite Release 12.1 will be equipped to conduct business globally with the ability to respond to global customer demands and competition, streamline operations across geographic regions and source and retain talent on a global scale. Oracle’s strategy is to deliver complete, integrated and end-to-end product suites on an open, standards-based middleware and database architecture. Oracle’s approach helps customers to simplify computing environments, lower cost and risk, and provides greater choice and flexibility.

The Oracle E-Business Suite provides a single, global view of customers, employees, suppliers, partners and operations, equipping organizations to make the smartest, most timely decisions.  With the Oracle E-Business Suite Release 12.1, customers can expect to benefit from the following:

  • Oracle Deal Management should enable sales executives to maximize profits, optimize the deal process and control price erosion with key decision support tools embedded within the deal negotiation process.
  • Pre-built dashboards and robust scenario modeling in Oracle Advanced  Planning Command Center are designed to provide supply chain  executives with the real-time business insight needed to make better supply chain decisions.
  • Oracle Service Parts Planning enables customers to accurately  forecast service parts to help increase customer service and boost profits.
  • Oracle Demand Signal Repository captures, cleanses and harmonizes large volumes of external demand data to give users insight to  consumer and supply chain behavior.
  • Enhanced talent management capabilities specifically in the areas of recruiting and performance management help organizations improve  operational efficiencies and turn employees into knowledge workers  and competitive assets.
  • Oracle Price Protection orchestrates business processes involving price protection agreements, helping to reduce errors and save money  for distributors.
  • Oracle Landed Cost Management estimates and then tracks the total landed cost of an item/shipment – a critical factor in making global sourcing decisions given the increase in indirect costs such  as logistics and duty.
  • The migration of standard reports to Oracle Business Intelligence Publisher offers increased efficiency to our customers’ compliance with local reporting obligations.

There are a few things we can do and try to improve the situation. Please follow the instructions below on steps 1 through 6 below and then retest and monitor the system over a period of time where you can measure if an improvement is taking place.

1) Change Sleep Time of the PO Doc Approval Manager to around 60 (seconds).  This is done from the following navigation:   Go to System Administrator responsibility and go to  Concurrent -> Manager -> Define.   Then in the Manager field go to query mode (F11) and enter PO Document Approval Manager.  Press CTL ^ F11 to bring back the PO Document Approval Manager.  Click on the WorkShifts button.  In the Sleep Seconds field ensure the value is 60 and save the form.

2) Set value of profile “Concurrent: Wait for Next Available TM” to 5 at the Site Level.

3) Go to System Administrator responsibility -> Concurrent -> Manager -> Administer -
Deactivate  the PO Document Approval Manager by hitting the Deactivate button,  making sure the Actual and Target processes are ‘0′

4) Go to System Administrator responsibility -> Concurrent -> Manager -> Administer -
Activate  the PO Document Approval Manager by hitting the Activate button.

5) Check the value of profile option PO: Approval Timeout Value (should not be lower than 300) at all levels (Site, Application, Responsibility, and User). Please set this profile to 1000 at the Site Level and keep it NULL at all other levels. Changing this to 1000 gives the Approval Workflow Functions more time for processing before timing out. The worst case here is that if there is a true performance issue the Purchase Orders or Requisitions may take a long time to approve but instead of timing out and the entire workflow erroring as it may be doing now the processes will complete.   If a performance issue is observed that will need to be investigated separately and with this profile set to a value of 1000 trace files can be obtained that will help show the root cause of the problem.

6) As an automated solution to mitigate timeout and PO Document Approval Manager not running errors, setup the POERROR workflow to automatically retry failed workflows with PO Document Approval Manager Error 1 (PO Document Approval Manager Timeout) or 2 (PO Document Approval Manager Not Active) For exact instructions please go to Note 224028.1  “Oracle Purchasing POERROR Workflow Setup and Usage Guide White Paper”

1- To check if POCISO transferred information to Order Entry,  run the following query:

SELECT  transferred_to_oe_flag
FROM po_requisition_headers_all
WHERE segment1= &requisition_number;

If the Value is Y, the  requisition was  processed  by POCISO and data was transferred to OE.

2- Next run the following  queries to determine if the Sales Order is still in the OE Interface tables.
SELECT orig_sys_document_ref
FROM oe_headers_iface_all
WHERE order_source_id = 10
AND orig_sys_document_ref IN( SELECT requisition_header_id
FROM po_requisition_headers_all
WHERE segment1= &requisition_number);

SELECT orig_sys_document_ref
FROM oe_lines_iface_all
WHERE order_source_id = 10
AND orig_sys_document_ref IN( SELECT requisition_header_id
FROM po_requisition_headers_all
WHERE segment1= &requisition_number);

3- To check whether the Sales Order was   imported already, the following query can be used:
SELECT ‘Exists in OM main’
FROM oe_order_headers_all
WHERE order_source_id =10
and source_document_id in ( SELECT requisition_header_id
FROM po_requisition_headers_all
WHERE segment1= &requisition_number);

Again valid for 11.5.10 version of Ora apps.

1. Go to Purchase Orders Summary form > query for a PO > after the header of the PO

is shown go to > (M) Help >Diagnostics > Custom Code > Personalize.
the Form Personalization open…

Function Name = PO_POXPOVPO
Form Name = POXPOVPO
Debug Mode = Off

Follow next steps:

- Seq = 1
- Description = Disable Finally Close
- Level = Function
- Enable is checked.

Condition tab:
- Trigger Event = WHEN-VALIDATE-RECORD
- Trigger Object = PO_DOCON_CONTROL
- Condition = PO_DOCON_CONTROL.ACTION = ‘FINALLY CLOSE’
- Processing Mode = Both

Actions tab:
- Seq = 1
- Type = Message
- Message Type = Show
- Message Text = You can not finally close the PO
- Seq = 2
- Type = Property
- Language = All
- Enabled is checked
- Object Type = Item
- Target Object = PO_DOCON_CONTROL.ACTION
- Property Name = VALUE
- Value = Leave it blank.
- Save

In tab Condition in zone Context can chose level= User and select users for which
this restriction to be available.

2.  Logout/login with the user set on the personalize window and try to finally
close a PO. After press on Finally Close action a  message appear “You can not finally
close the PO”

Posted by: oracleworld | December 18, 2008

How to send alert notifications once a PO Requisition is approved?

Valid for 11.5.10 .

1 Using the Alert Manager Responsibility
Navigate to Alert->Define form

Application: Purchasing
Alert type : Event alert
Table : PO_REQUISITION_HEADERS_ALL

Create an alert SQL statement which will fetch data only when a purchase order is approved

Alert SQL used
——————
select
segment1,
rowid,
authorization_status
into
&seg,
&rowid1,
&auth_status
from PO_REQUISITION_HEADERS_ALL
where upper(authorization_status)=’APPROVED’
and rowid=:rowid

2. Define action
For eg : send_msg
Message Level -> detail
Specify the valid address in the to field

3. Define a action set send_action_set
and add this action as a member to this action set

4. Mention the operating unit in the alert details->installations tab for which you need to run this alert.

Check on this Custom SQL for the same.

SELECT   dff.descriptive_flexfield_

name,
dff.application_table_name,
app.application_short_name app,
u.descriptive_flex_context_code,
u.application_column_name,
u.end_user_column_name
FROM     fnd_descr_flex_column_usages u,
fnd_descriptive_flexs dff,
fnd_application app
WHERE    u.descriptive_flexfield_name NOT LIKE ‘$SRS$.%’
AND      dff.descriptive_flexfield_name = u.descriptive_flexfield_name
AND      app.application_id = dff.table_application_id
–AND      dff.application_table_name = ‘OE_ORDER_HEADERS_ALL’
–and u.descriptive_flexfield_name = ‘RA_ADDRESSES_HZ’
ORDER BY app.application_short_name,
descriptive_flexfield_name,
descriptive_flex_context_code,
TO_NUMBER (REGEXP_REPLACE (u.application_column_name,
‘[^0-9]‘))
Posted by: oracleworld | October 16, 2008

RFID and Oracle in the Supply Chain

This post is very interesting from Johan of Smart Apps. Gives a good insight into the RFID way of working.

RFID, Radio-frequency identification, becomes more and more adopted in the modern supply chain. Single packages, pallets and complete trucks are identified and scanned on content by using RFID. Operations like locating stock in your warehouse or during internal transportation from sub inventory to sub inventory are making, in a lot of modern companies, use of RFID tags. When goods are passing along a “reading station” the RFID reader reads the information from the RFID chip and notifies the system of the current location of the item.

Scanning the content of a crate containing several goods for your customer now becomes less time consuming or can even become completely automated. So checking if all the goods are picked and packed before shipping them is nowadays a matter of scanning the box by reading RFID radio waves without the need of opening the box or unpacking a shipping crate. This technique can reduce the amount of picking mistakes and also can reduce in a lot of cases the number of FTE’s needed in a warehouse for everyday warehouse operations and quality control.

Most RFID tags contain at least two parts. One is an integrated circuit for storing and processing information, modulating and demodulating a (RF) signal, and other specialized functions. The second is an antenna for receiving and transmitting the signal. A technology called chipless RFID allows for discrete identification of tags without an integrated circuit, thereby allowing tags to be printed directly onto assets at a lower cost than traditional tags.

Oracle in combination with some hardware vendors have integrated the hardware like scanners and reading stations to talk to Oracle products like Oracle Warehouse Management and Oracle E-Business suite. Oracle Sensor Edge Server As a component of the Oracle 10g Application Server, the Oracle Sensor Edge Server enables companies to quickly and easily integrate sensor-based information into their enterprise systems such as WMS, ERP, etc.

The Oracle Sensor Edge Server serves both as a middleware that connects sensors to your enterprise applications and as integrated solution for application developers. It provides the following functionality to reduce costs for sensor enabling enterprise information systems: Managing and monitoring the performance of the sensor devices integrated with your Information Infrastructure; local sensor event processing and filtering data; securely and reliably dispatching event data back to enterprise applications and databases.

Out of the box support for all the standards specified by EPCGlobal (DOD-64/96, GIAI-64/96, GID-96, GRAI-64/96, SGLN-64/96, SGTIN-64/96, SSCC-64/96). The declarative engine allows customizable parsing and encoding to easily adapt future changes. New Gen2 Tags encoding are supported as well.

As for the hardware, Oracle Sensor Edge Server will ship with a large number of pre-installed and configured drivers for readers and RFID printers for all the main A suppliers like Alien, Intermec, SAMSys, Symbol/Matrics/Motorola, Tyco, Printronix, Sato and Zebra.

In the image above you can see a quite basic order flow.

(1) An order is entered and booked at your order desk.

(2) A picking list is send to the warehouse and a warehouse employee is picking the goods. During this process he can make use of a RFID hand scanner to identify that the products he is gathering are the products that are mentioned on his picking list. After picking the goods are packed into a shipping package. When this process is finished a internal move order is issued to move the package from the packing area to the shipping dock

(3) Before or during this move the shipping package will pass a reading station where the RFID tag of the shipping package is verified against the signals of the items in the shipping package. By verifying the package RFID tag and the tags of the content you can ensure that all the items that should be in the package are really in. If not a backorder can be issued or the package can be routed back to the pick/pack area to have the missing item added to the package.

(4) When trucks are loaded to transport the goods to the customer the shipping packages will pass a reading station and so checking if all the packages that should be in the truck for the trip are really in and making sure that there are no packages loaded that should be not on this trip.

(5) At the customer side the RFID tags can be used to verify that all the goods are being received in a fast manner. This means trucks can unload faster and are not tacking up precious loading and unloading docks. Directly when the goods are coming out of the truck and rolling into the receiving dock they pass a reading station which will identify all the RFID tags of the shipping packages and the RFID tags of goods that are in the packages.

(6) Internal transport order at the customer side are checked monitored and verified when goods are moving from one sub-inventory to another and passing reading stations.

(7) Goods stored can be quickly found and identified in the customers warehouse by warehouse employees making use of RFID hand scanners.

Posted by: oracleworld | October 15, 2008

How Stanford University does buying..

Follow the link below to learn Oracle internet procurement and how it has been implemented in Stanford University. Link

Posted by: oracleworld | October 15, 2008

Mass entering of Sales Orders

This one is for techies . Thanks to Bryan for investigating and producing a solution using OE_Order_PUB.Process_Order API.

To create a sales order header, at minimum you’ll need to specify a customer, price list, currency and any required descriptive flexfield values dictated by your setups.  You may also need a customer purchase order number if you’re order type has been setup to require it before booking.  The code excerpt below shows this information along with other required data that is needed to produce an order header:

l_header_rec.operation := OE_GLOBALS.G_OPR_CREATE;
l_header_rec.order_type_id := 100000;
l_header_rec.sold_to_org_id := 1000;
l_header_rec.price_list_id := 100;
l_header_rec.pricing_date := SYSDATE;
l_header_rec.transactional_curr_code := ‘USD’;
l_header_rec.flow_status_code:=’ENTERED’;
l_header_rec.cust_po_number := ‘123′;
l_header_rec.attribute1  := ‘ABC’;

The script also doesn’t create any order lines, so this code would also have to be added.  All that the OE_Order_PUB.Process_Order API needs to create an order line is an ordered item, quantity, and any required descriptive flexfield values that may be needed.

l_line_tbl(1).inventory_item_id := 201775;
l_line_tbl(1).ordered_quantity := 1;
l_line_tbl(1).attribute1 := ‘ABC’;

At the beginning of the script you will also need to add an API call to dbms_application_info.set_client_info to set the organization context as well as initializing the user, responsibility, and application under which the order(s) will be created.

dbms_application_info.set_client_info(100000);

fnd_global.apps_initialize(l_user, l_resp, l_appl);

Since I want this script to create not just one order, but many orders, I needed to insert a loop into the script with parameters that let me control how many orders to create, and whether to enable or disable debug.  For good performance and to avoid exceeding any buffer limitations, a debug “switch” is a good things to have, especially when creating hundreds or even thousands of sales orders.

l_debug_level number := 0;  — OM DEBUG LEVEL (MAX 5)
l_no_orders number := 100;    — NO OF ORDERS

for i in 1..l_no_orders loop — BEGIN LOOP

if (l_debug_level > 0) then
DBMS_OUTPUT.PUT_LINE (’debug message here’);
end if;

end loop; — END LOOP

With these modifications in place, I now have a working script that will create a mass amount of sales orders for the volume test I need.  I hope this comes in handy for you!


DECLAREl_api_version_number NUMBER := 1;
l_return_status VARCHAR2(2000);
l_msg_count NUMBER;
l_msg_data VARCHAR2(2000);

/*****************PARAMETERS****************************************************/
l_debug_level number := 0;  — OM DEBUG LEVEL (MAX 5)
l_org number := 1000;         — OPERATING UNIT
l_no_orders number := 100;    — NO OF ORDERS
l_user number := 10;      — USER
l_resp number := 100;     — RESPONSIBLILTY
l_appl number := 660;       — ORDER MANAGEMENT

/*****************INPUT VARIABLES FOR PROCESS_ORDER API*************************/
l_header_rec oe_order_pub.header_rec_type;
l_line_tbl oe_order_pub.line_tbl_type;
l_action_request_tbl oe_order_pub.Request_Tbl_Type;

/*****************OUT VARIABLES FOR PROCESS_ORDER API***************************/
l_header_rec_out oe_order_pub.header_rec_type;
l_header_val_rec_out oe_order_pub.header_val_rec_type;
l_header_adj_tbl_out oe_order_pub.header_adj_tbl_type;
l_header_adj_val_tbl_out oe_order_pub.header_adj_val_tbl_type;
l_header_price_att_tbl_out oe_order_pub.header_price_att_tbl_type;
l_header_adj_att_tbl_out oe_order_pub.header_adj_att_tbl_type;
l_header_adj_assoc_tbl_out oe_order_pub.header_adj_assoc_tbl_type;
l_header_scredit_tbl_out oe_order_pub.header_scredit_tbl_type;
l_header_scredit_val_tbl_out oe_order_pub.header_scredit_val_tbl_type;
l_line_tbl_out oe_order_pub.line_tbl_type;
l_line_val_tbl_out oe_order_pub.line_val_tbl_type;
l_line_adj_tbl_out oe_order_pub.line_adj_tbl_type;
l_line_adj_val_tbl_out oe_order_pub.line_adj_val_tbl_type;
l_line_price_att_tbl_out oe_order_pub.line_price_att_tbl_type;
l_line_adj_att_tbl_out oe_order_pub.line_adj_att_tbl_type;
l_line_adj_assoc_tbl_out oe_order_pub.line_adj_assoc_tbl_type;
l_line_scredit_tbl_out oe_order_pub.line_scredit_tbl_type;
l_line_scredit_val_tbl_out oe_order_pub.line_scredit_val_tbl_type;
l_lot_serial_tbl_out oe_order_pub.lot_serial_tbl_type;
l_lot_serial_val_tbl_out oe_order_pub.lot_serial_val_tbl_type;
l_action_request_tbl_out oe_order_pub.request_tbl_type;

l_msg_index NUMBER;
l_data VARCHAR2(2000);
l_loop_count NUMBER;
l_debug_file VARCHAR2(200);

– book API vars
b_return_status VARCHAR2(200);
b_msg_count NUMBER;
b_msg_data VARCHAR2(2000);

BEGIN

dbms_application_info.set_client_info(l_org);

/*****************INITIALIZE DEBUG INFO*************************************/

if (l_debug_level > 0) then
l_debug_file := OE_DEBUG_PUB.Set_Debug_Mode(’FILE’);
oe_debug_pub.initialize;
oe_debug_pub.setdebuglevel(l_debug_level);
Oe_Msg_Pub.initialize;
end if;

/*****************INITIALIZE ENVIRONMENT*************************************/
fnd_global.apps_initialize(l_user, l_resp, l_appl); — pass in user_id, responsibility_id, and application_id
/*****************INITIALIZE HEADER RECORD******************************/
l_header_rec := OE_ORDER_PUB.G_MISS_HEADER_REC;
/*****************POPULATE REQUIRED ATTRIBUTES **********************************/

l_header_rec.operation := OE_GLOBALS.G_OPR_CREATE;
l_header_rec.order_type_id := 100000;
l_header_rec.sold_to_org_id := 1000;
l_header_rec.price_list_id := 100;
l_header_rec.pricing_date := SYSDATE;
l_header_rec.transactional_curr_code := ‘USD’;
l_header_rec.flow_status_code:=’ENTERED’;
l_header_rec.cust_po_number := ‘123′;
l_header_rec.attribute1  := ‘ABC’;

/*****************INITIALIZE ACTION REQUEST RECORD*************************************/

l_action_request_tbl(1) := OE_ORDER_PUB.G_MISS_REQUEST_REC;
/*****************INITIALIZE LINE RECORD********************************/

l_line_tbl(1) := OE_ORDER_PUB.G_MISS_LINE_REC;
l_line_tbl(1).operation := OE_GLOBALS.G_OPR_CREATE;
l_line_tbl(1).inventory_item_id := 201775;
l_line_tbl(1).ordered_quantity := 1;
for i in 1..l_no_orders loop — BEGIN LOOP

/*****************CALLTO PROCESS ORDER API*********************************/

OE_Order_PUB.Process_Order( p_api_version_number => l_api_version_number,
p_header_rec => l_header_rec,
p_line_tbl => l_line_tbl,
p_action_request_tbl => l_action_request_tbl,
– OUT variables
x_header_rec => l_header_rec_out,
x_header_val_rec => l_header_val_rec_out,
x_header_adj_tbl => l_header_adj_tbl_out,
x_header_adj_val_tbl => l_header_adj_val_tbl_out,
x_header_price_att_tbl => l_header_price_att_tbl_out,
x_header_adj_att_tbl => l_header_adj_att_tbl_out,
x_header_adj_assoc_tbl => l_header_adj_assoc_tbl_out,
x_header_scredit_tbl => l_header_scredit_tbl_out,
x_header_scredit_val_tbl => l_header_scredit_val_tbl_out,
x_line_tbl => l_line_tbl_out,
x_line_val_tbl => l_line_val_tbl_out,
x_line_adj_tbl => l_line_adj_tbl_out,
x_line_adj_val_tbl => l_line_adj_val_tbl_out,
x_line_price_att_tbl => l_line_price_att_tbl_out,
x_line_adj_att_tbl => l_line_adj_att_tbl_out,
x_line_adj_assoc_tbl => l_line_adj_assoc_tbl_out,
x_line_scredit_tbl => l_line_scredit_tbl_out,
x_line_scredit_val_tbl => l_line_scredit_val_tbl_out,
x_lot_serial_tbl => l_lot_serial_tbl_out,
x_lot_serial_val_tbl => l_lot_serial_val_tbl_out,
x_action_request_tbl => l_action_request_tbl_out,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data);

/*****************CHECK RETURN STATUS***********************************/

if l_return_status = FND_API.G_RET_STS_SUCCESS then
if (l_debug_level > 0) then
dbms_output.put_line(’success’);
end if;
commit;
OE_ORDER_BOOK_UTIL.COMPLETE_BOOK_ELIGIBLE(1.0,
FND_API.G_FALSE,
l_header_rec_out.header_id,
b_return_status,
b_msg_count,
b_msg_data
);
commit;
else
if (l_debug_level > 0) then
dbms_output.put_line(’failure’);
end if;
rollback;
end if;

end loop; — END LOOP

/*****************DISPLAY RETURN STATUS FLAGS******************************/
if (l_debug_level > 0) then
DBMS_OUTPUT.PUT_LINE(’process ORDER ret status IS: ‘ || l_return_status);
DBMS_OUTPUT.PUT_LINE(’process ORDER msg data IS: ‘ || l_msg_data);
DBMS_OUTPUT.PUT_LINE(’process ORDER msg COUNT IS: ‘ || l_msg_count);
DBMS_OUTPUT.PUT_LINE(’header.order_number IS: ‘ || to_char(l_header_rec_out.order_number));
DBMS_OUTPUT.PUT_LINE(’header.return_status IS: ‘ || l_header_rec_out.return_status);
DBMS_OUTPUT.PUT_LINE(’header.booked_flag IS: ‘ || l_header_rec_out.booked_flag);
DBMS_OUTPUT.PUT_LINE(’header.header_id IS: ‘ || l_header_rec_out.header_id);
DBMS_OUTPUT.PUT_LINE(’header.order_source_id IS: ‘ || l_header_rec_out.order_source_id);
DBMS_OUTPUT.PUT_LINE(’header.flow_status_code IS: ‘ || l_header_rec_out.flow_status_code);
end if;

/*****************DISPLAY ERROR MSGS*************************************/
if (l_debug_level > 0) then
FOR i IN 1 .. l_msg_count LOOP
Oe_Msg_Pub.get(
p_msg_index => i
,p_encoded => Fnd_Api.G_FALSE
,p_data => l_data
,p_msg_index_out => l_msg_index);

DBMS_OUTPUT.PUT_LINE(’message is: ‘ || l_data);
DBMS_OUTPUT.PUT_LINE(’message index is: ‘ || l_msg_index);
END LOOP;
end if;
if (l_debug_level > 0) then
DBMS_OUTPUT.PUT_LINE(’Debug = ‘ || OE_DEBUG_PUB.G_DEBUG);
DBMS_OUTPUT.PUT_LINE(’Debug Level = ‘ || to_char(OE_DEBUG_PUB.G_DEBUG_LEVEL));
DBMS_OUTPUT.PUT_LINE(’Debug File = ‘ || OE_DEBUG_PUB.G_DIR||’/’||OE_DEBUG_PUB.G_FILE);
DBMS_OUTPUT.PUT_LINE(’****************************************************’);

OE_DEBUG_PUB.DEBUG_OFF;
end if;

END;

The above code was achieved brilliantly by Bryan using a working example as exmplained in Oracle Metalink Note 292743.1.

This should give you a rough idea about the steps to take when considering upgrading to Release 12.Do not just upgrade to Release 12, because it is the latest release available. You should have a business requirement before doing so. To determine you have a business case

  • Evaluate Business Benefit and Cost
    Assess Release 12 functionalities and features
    You should perform a ROI analysis to understand architectural and deployment capabilities of Release 12 and benefits from performance, security, availability, scalability and manageability.
  • Evaluate upgrade time and cost, resources and impact on other projects
  • Review 11i customizations, extensions, 3rd party integrations to assess the impact on Release 12.
    Keep in mind that the terminal release of E-Business Suite 11i is 11.5.10.2, so Oracle Development’s priority will currently be on Release 12.
    Another very true remark by Sandra: Don’t go on the bleeding edge, you will not want to bleed!
    You are using HR/Payroll? then you need to upgrade, because of quarterly and year-end patches that are required.

Tasks to ease your upgrade process (a couple of which we have seen earlier throughout the conference):

  1. Upgrade your database to 10gR2
    Release 12 is shipped with 10gR2. Not having to upgrade your database while upgrading to Release 12 can save significant amount of time
  2. Convert to OATM
    Oracle Applications Tablespace Model was introduced in 11i.9 and changes the tablespace model of Oracle E-Business Suite significantly. Though not mandatory for upgrading to Release 12, it is highly recommended, because it will ease the administration of the database. Pre 11i.9 there were 2 tablespaces per module, easily adding up to 400+ tablespaces for a complete E-Business Suite implementation. OATM decreases the amount of tablespaces to 12, including system, undo and temp tablespaces. The tablespaces in OATM are also locally managed. The minimum database version for OATM is 9.2.0.4.
  3. Evaluate impact of R12 on customizations and extensions
    Catalog all customizations. Some of the technologies in Release 11i have been disabled in Release 12:
    “mod_plsql”
    Oracle Reports Server reports
    Oracle Graphics integration with Oracle Forms
    OAF pages in AK repository
    Metalink note 374398.1 is a useful resource for preparing custom development for EBS Release 12.
  4. Start using BI publisher and Jdeveloper
    Release 12 HTML reports should be converted to BI Publisher format
    Reports Server is only accessible from the Concurrent Manager
    Reports with integrated Oracle Graphics need to be reimplemented with BI Publisher
    Need for Jdeveloper 10.1.3 for OAF personalizations.
  5. Integrate Discoverer Server 10G in 11i
    Discoverer Server 10G is certified with both 11i and Release 12. Version 4i was desupported since end of October 2006.
    Install Discoverer Server on a separate server, preventing conflicts between the 4i and 10G Visibroker.
    Metalink Note 313418.1 is a valuable resource for implementing Discoverer 10.1.2 with E-Business Suite 11i.
  6. Start using iAS 10G for external applications
    SSO, OID and Portal are components that can be used with E-Business Suite.
    For SSO and OID use iAS 10.1.2.0.2 – See Metalink Note 233436.1
    For Portal use version 10.1.4.1 – See Metalink Note 305918.1
  7. Position for High Availability and Scalability
    Scalability: Use shared Application Technology File System (shared technology stack and APPL_TOP) – See Metalink Note 233428.1
    Availability: consider Real Applications Cluster technology – See Metalink Note 362135.1
  8. Evaluate Platform Change based on ROI analysis
    An upgrade might require new hardware
    Evaluate existing hardware and perform capacity planning for Release 12 ahead of time
    Consider Linux (a remark that I heard a lot of times during this week!)

This post is from inputs from Sandra Vucinic.

Older Posts »

Categories