Skip navigation.

Feed aggregator

Single-Point-of-Definition by Example

Jeff Kemp - Thu, 2010-06-10 23:00
Steven Feuerstein lists seven excellent “Golden Rules” in his presentation (via Eddie Awad) and says “Don’t repeat anything. Aim for a Single Point of Definition for every aspect of your application – formulas, business rules, magic values, SQL statements.” giving the following code as exhibit A: (source) I’m guessing in his presentation he spoke about various [...]

Another way to learn something new every day

Jeff Kemp - Sun, 2010-05-30 22:30
My morning routine for the last few weeks has had a small addition – just a few minutes to log on The PL/SQL Challenge at 8am (WST) and answer a quiz question. This is a great way to test the depth and breadth of your knowledge of Oracle PL/SQL. Whether you’re a beginner in the [...]

Enhanced Change Management Functionality to the IR/ISO Process

Bryan Thompson - Sat, 2010-05-29 16:41
In 12.1 and 12.1.2, Oracle has introduced long awaited improvements to the Internal Requisition/Internal Order (IR/ISO) process...

Two sides of the same fence?

Jeff Kemp - Tue, 2010-05-25 22:00
In my daily reading these two articles came fairly close together, and I have a strong feeling they are describing exactly the same project. * From one side of the fence: A total rewrite: costly, time-consuming, but worth it? “Our CMS was developed using Active Server Pages, and consisted of around 80,000 lines of VBScript [...]

ORA-01481 Invalid number format model

Jeff Kemp - Tue, 2010-05-25 03:00
My code worked perfectly fine in Oracle 9i, but after our upgrade to 11g all of a sudden it was failing with ORA-01481 “Invalid number format model”. The cause? A mixed-up number format model – I’d accidentally mixed locale-specific (“.“) and locale-safe (“G“) codes in the number format. I don’t know if this is due [...]

One insert or multiple inserts?

Jeff Kemp - Thu, 2010-05-13 03:00
A colleague asked me a trick* question today which I failed * whether it was a “trick” question is probably in the eye of the beholder, though… “What are the differences, if any, between the following two approaches to inserting multiple rows (assume v1 and v2 have different values): INSERT INTO mytable (a) SELECT :v1 [...]

It's been a while...

David Litchfield - Sat, 2010-02-27 01:34

It's been a while since I wrote my last blog entry. Actually, it's been a really long while. In the interim, I've since sold NGSSoftware and after staying on for 16 months have now resigned and am taking a wee break, but planning my next venture - V3rity. All will be revealed. Soon.

Posted by David On 26/02/10 At 03:34 PM

PXE boot in VMWare Fusion using host-only adapter

Frits Hoogland - Thu, 2009-12-17 04:48

Recently I’ve done some investigation on how to PXE-boot a system and do automatic installation. To get familiar with the techniques involved, and the software, I decided to try it on my laptop on a VM in VMWare Fusion (yes, it’s on a MAC).

How does PXE-boot work? Put really simple: if PXE-booting is used (it’s in the boot-list in the BIOS of most physical systems, and also the VMWare VM BIOS), it broadcasts it wants to use PXE on the network. A DCHP server can be configured to honour this request and send a PXE image to the machine.

Using the PXE image you can do all kinds of cool stuff, like start an attended or an unintended installation. Yes! This lets you install a linux system without using physical CD’s/DVD and going to the machine. Or even install a linux system without any involvement at all (!!!!), you just need to configure some things in advance.

Back to the MAC. This didn’t work using the host-ony adapter.

Host only adapters are setup using DHCP
This means VMWare setups a DHCP server, and you can use that by selecting the ‘host only’ adapter in the VM settings, and need to set it to DHCP in your VM.

This means that in order to setup PXE booting, we need to alter the VMWare Fusion DHCP Host Only DHCP server.

Where is the host-only vmware fusion dhcp server configuration located?
/Library/Application Support/VMware Fusion/vmnet1/dhcpd.conf

What do we need to add?
We need to add two things:
next-server: the ‘next-server’ directive needs to be pointed to the tftp server serving the PXE image.
filename: the ‘filename’ directive needs to be pointed to the PXE image file.

This is how it looks in my case:

# Configuration file for ISC 2.0b6pl1 vmnet-dhcpd operating on vmnet1.
# This file was automatically generated by the VMware configuration program.
# If you modify it, it will be backed up the next time you run the
# configuration program.
# We set domain-name-servers to make some DHCP clients happy
# (dhclient as configued in SuSE, TurboLinux, etc.).
# We also supply a domain name to make pump (Red Hat 6.x) happy.
allow unknown-clients;
default-lease-time 1800; # 30 minutes
max-lease-time 7200; # 2 hours

subnet netmask {
filename “pxelinux.0″;
option broadcast-address;
option domain-name-servers;
option domain-name “localdomain”;

Do not forget the ‘;’ which is needed after every line!

Progress… YES?

V.J. Jain - Fri, 2009-12-04 14:45

After dealing with several challenges during the installation, I have successfully installed Oracle Apps on Oracle Enterprise Linux.  I’ve spent some time on the post-installation checks.

One of my specific challenges was that I already had the Oracle database installed previously.  This was causing some conflicts as the environment was not getting setup correctly.

Another issue that I faced was a problem with  This required creating a symbolic link as shown below:

root@localhost ~]# ls /usr/lib/
ls: /usr/lib/ No such file or directory
[root@localhost ~]# ln -s /usr/lib/ /usr/lib/
[root@localhost ~]# ls /usr/lib/

The next issue I faced was to do with creating the Login Page.  I kept getting an error…

checking URL = http://localhost.localdomain:8000/OA_HTML/AppsLogin

RW-50016: Error: – {0} was not created:
File = {1}

I got around this by unlocking the Oracle accounts, running autoconfig, and bouncing the services.

Finally, I was able to see the login page and login as sysadmin.  I went to open the Applications by clicking on one of the forms and I faced another problem.  When opening the forms I received another error.

FRM-92101: There was a failure in the Forms Server during startup. This could happen due to invalid configuration
Please look into the web-server log file for details

Java Exception sessionfailed during startup:no response from runtime process
at Source)
at source)
at Source)
at Source)
at source)

I looked into the forms server log file which is given below

and found the following error

testMode: false
09/04/09 08:12:17 Oracle Containers for J2EE 10g ( initialized
09/04/09 08:14:27 ListenerServlet init()
09/04/09 08:14:28 Forms session aborted: runtime process failed during startup with
errors /u03/oracle/VIS/apps/tech_st/10.1.2/bin/frmweb: error while loading shared libraries:
/usr/X11R6/lib/ ELF file data encoding not little-endian

This required installing the openmotif package from Oracle’s download site  The following package was missing: openmotif21-2.1.30-11.EL5.i3861.rpm

After trying again, a similar error appeared:

09/12/04 11:55:22.317 formsweb: Forms session <1> aborted: runtime process failed during startup with errors /u01/oracle/VIS/apps/tech_st/10.1.2/bin/frmweb: error while loading shared libraries: cannot open shared object file: No such file or directory

Metalink says the following about the libXP package…

The  i386 version of the libXp package is missing. The Oracle Universal Installer ( OUI  ) requires the file and this file is installed with the package libXp in RHEL 5 and OEL 5.

Issue the following to confirm the missing rpm:

% rpm -qa –queryformat “%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n” | grep libXp

The package libXp was not installed in RHEL 5/OEL 5 with default RPM packages, so it will need to be installed manually.   In RHEL 4 this file was provided by the package xorg-x11-deprecated-libs which is installed with default package installation but this is not the case for RHEL5/OEL5 and is now provided with a different rpm, the libXp rpm.

Install the package libXp by the command:

# rpm -ivh </path/to/>libXp.<version>.i386.rpm

Unfortunately, I did not have the DVD in front of me, so I found the RPM on

[root@localhost tmp]# rpm -ivh libXp-1.0.0-8.1.el5.i386.rpm –nodeps
warning: libXp-1.0.0-8.1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID a7048f8d
Preparing…                ########################################### [100%]
1:libXp                  ########################################### [100%]
[root@localhost tmp]# rpm -qa –queryformat “%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n” | grep libXp
libXp-1.0.0-8.1.el5 (i386)

After installing the libXp, my Apps Forms opened up at last.

At Last, I have my Vision instance up and running.

Installing E-Business Suite 12.1.1 in RHEL5

V.J. Jain - Wed, 2009-12-02 11:29

The Adventure Begins

I started by purchasing a brand new enterprise server without an OS. My first goal was to install the latest release of Oracle Enterprise Linux for the operating system and then to install the latest release of Oracle Database (11.2). My next goal was to install the latest release of Oracle E-Business Suite for Linux x86-64 (12.1.1).

A few months ago I installed Oracle Enterprise Linux (Red Hat Enterprise Linux 5.4) on the brand new server. This was relatively easy and being comfortable with Unix probably helped. My next step was to install the latest Oracle Database which was (and still is) 11.2. This step was slightly more difficult as being “comfortable with Unix” does not translate to “proficiency with Unix”. After dealing with a few issues (dependencies top the list), I successfully installed and configured my 11.2 instance.

In my opinion, the performance of Oracle 11.2 on RHEL5 (OEL) is extremely good. I have instances on Windows, HP-UX, and Solaris; RHEL is the fastest and most stable. Obviously, my experience is limited to the features that I use and transactions that I perform.

The Adventure Continues

I’m finally getting around to installing Oracle E-Business Suite 12.1.1 on Oracle Enterprise Linux 5.4 (RHEL 5). This is being built on an Oracle 11.2 Database and so far things are going smoothly. I’m kind of surprised with how smooth the installation has been so far.

The only bump that I ran into was because I didn’t have Xming program installed. I was trying to get the X11 port forwarding (in Putty) to work for the GUI needed for the Oracle Rapid Install since I didn’t feel like hooking up the monitor directly to the server. It worked like a charm once I installed Xming.

I’m looking forward to having a fully functional R12 Vision instance in this hardware/OS/database configuration. From my experience with the 11.2 Database in RHEL5 so far, I have a feeling the performance will be excellent.

More to come on this soon…

My Background (Are you Technical or Functional, Apps or DB?)

I am an Oracle Database Consultant and an Oracle Applications Consultant. My area of expertise for most on-site projects that I personally work on is a Functional role for Oracle E-Business Suite (Oracle Applications) with a focus on Financials and Distribution. However, I work on remote projects that are not related to the E-Business Suite, such as database design, development, XML DB and ETL, performance tuning, etc. I have written many database-related articles and even been a co-author of an Oracle 11g book. As a result, my skill-set ranges from pure database to ERP Functional. Till recently, I had not developed my skills with system administration or Applications DBA. The goal of this in-house project was to expand my knowledge of these two roles.

Why I think this is Valuable

As a Functional Consultant, I have the responsibility of translating business requirements from my clients into solutions. When designing solutions to business requirements, it is important that the person who architects the solution understands the available components and tiers to the solution. For example, if a client had a requirement to manage a large amount of XML data, one solution might be (very high level) to load the data into Oracle. I can think of hundreds of other possible solutions based on many different criterion. For each business requirement, there are usually many sub-optimal solutions. Ultimately, the ability to design an optimal solution depends greatly on the awareness of the solution architect. An increased “awareness” increases the number of potential solutions for any requirement and I think that without exception, this leads to the optimal solution. Generally, this will save time and money while outperforming the other potential solutions.

About the author

V.J. Jain is an Oracle Database Consultant and an Oracle Applications Consultant. He is the owner is an Orange County based Oracle Consulting Firm, Varun Jain, Inc.. When personally performing work on-site, he works as a Consultant for Oracle E-Business Suite (Oracle Applications) with a focus on Financials and Distribution. With over 13 years of experience with database systems, he also specializes in database performance, custom database development, XMLDB/ETL, Oracle interfaces, and high performance solutions. Additional material by him can be found at Also, Connect with V.J. Jain on LinkedIn

Do you crash your database on machine shutdown?

Frits Hoogland - Thu, 2009-11-05 09:49

Most DBA’s would say ‘NO’ without hesitation. I dare you to take another look.

What is this blog about?
This blog is about DBA’s who run databases on linux. Linux sysadmins are target audience too; this blog is about the stop/start system on linux, and to be more precise: about the specific implementation of the stop/start system on redhat and it’s derivatives (Oracle’s enterprise linux for example, but also centos)

What about it?
The redhat stop/start system looks and feels like the traditional unix system V stop/start system found on most unixes. Correct usage of the redhat stop/start system is in fact quite different from that.

The traditional unix system V stop/start uses an executable script in the init.d directory (often /etc/init.d or /etc/rc.d/init.d) and uses a symbolic link in the runlevel directories (rc1.d, rc2.d, rc3.d, etc.) from the script in init.d, but prefixing the name it with ‘S’ (for start) or ‘K’ (for kill, thus stop) and a two digit number to indicate the order for starting or stopping.

The redhat stop/start system works with an executable script in the init.d directory (/etc/rc.d/init.d). The correct way to enable stop/start is using the chkconfig command:
chkconfig --add yourscript
This command check if the script yourscript is present in /etc/rc.d/init.d, then reads a line looking like this in the stop/start script:
#chkconfig: 2345 80 05
This tells chkconfig that the script should run in runlevels 2,3,4 and 5 with order number 80 and stopped (killed) with order number 05.
To check if chkconfig did understand your script, use:
chkconfig --list
Further reading about chkconfig:
man chkconfig

Alright, but what about crashing the database?
A lesser known fact is that the redhat stop/start system uses a file with the same name as the stop/start script in /var/lock/subsys to determine if the script is already started (so it doesn’t get started if it’s already started in a previous runlevel) and needs to be created in the start part, but more importantly it determines if the script needs to execute the stop procedure by checking the existence of this file in /var/lock/subsys. As part of the stop procedure the file needs to be removed, so the stop procedure isn’t run again in another runlevel.

In many custom made scripts this file doesn’t get created in /var/lock/subsys in the start procedure, so the stop procedure actually is never executed, because the script is already stopped from the perspective of the stop/start system. This typically means that the oracle stop/start script does a perfect job starting the database, but actually never stops the database, which means that during a shutdown or a reboot, the database actually crashes.

Sadly, I see very much scripts forgetting this (even ones from respectable sources, like redhat; see: Redhat summit beginner’s guide to running oracle on RHEL, for example, there are much more). Check your stop/start script today!

Oracle R12 Payables Discount

V.J. Jain - Thu, 2009-09-24 13:54

One user posted a question on OTN forums for Payables –

Hi all,

I have a scenario involving discount on the purchase of an Item. My invoice, as received as the supplier is as follows:

Item xxx 100
Discount (10)

Total 90
VAT(15%) 15.50

Net 103.50

When I create an invoice in AP, I add a line with amount $100 and assign a tax of 15%
The above create a total of $115 and i add this total as header amount in the invoice.
AND in the Scheduled Payment tab at line level, I add a discount amount of $10 for the “First Discount” Info.

When I make payment for the above invoice, a pop-up appears indicating discount will be applied. But the Payment amount is $105 (Invoice header amount minus discount).

Is this the only way to treat discount in AP?
I need the payment amount to be $103.50 after applying discount.

My response was:

If I understand correctly, it seems like you are manually calculating the tax and entering it to the invoice amount. If you configure your taxes in Oracle, and then enter the invoice for the actual amount, then Oracle will know the true invoice amount which is the discount basis and create the tax line according to the configurations (the way you want it). What you are doing now is adding the tax outside Apps configuration and then expecting Apps to calculate the appropriate discount. If you want to use the standard functionality, you need to set up all dependent parts of that functionality. If tax calculation is a dependency of the discount basis, which is certainly a dependency of discount payment terms, then you need to set it up properly.

This really demonstrates one major theme that I consistently encounter with Oracle Apps consultants.  There is a lack of true understanding of the fundamentals behind the applications.  I’m not saying that is the case for this particular user because I don’t know him/her but it is the case for the majority of consultants that are staffed into most projects.

Everything in the ERP system is part of a business flow.  For a company that sells products, it is something similar to
- Leads to Quotes to Sales to [PO|Manufacturing to] Shipping to Invoice to Receipt to Cash to Financials

For Payables it is something like
- Purchasing to Receipt to Accrual to Invoice to Payment

For Discount Payment Term it is going to be
- Invoice /w Discount Terms to Payment with Discount Taken

Most vendors are going to exclude tax and freight from the discount allowed by prompt payment of the invoice.  So obviously if you want Oracle to calculate the amount to take on an invoice with discount terms, it is going to need to know what portion of the Invoice is for freight and tax.  Expecting the discount to be applied to only the $100 of a $115 ($15 from tax) invoice when the invoice is entered as $115 invoice is not going to work.  Have you ever heard of a tax line?

R12 does complicate the management of taxes with the E-Business Tax module.  I know of several consultants who are “experts” in R12 E-Tax and are getting great bill rates as they help setup the new module.

I learned R12 EBTax but not without several weeks of continuous headaches.  I won’t take projects to setup the R12 EBTax because it is tedious.  Regardless, it is important for Oracle apps consultants to be aware of how taxes work in R12 or you run into situations where things are not working the way you want and you don’t know why.  To someone who understands the applications, it jus seems like you lack common sense.

Starting my blog, finally

V.J. Jain - Mon, 2009-09-21 15:06

I’ve been wanting to create a blog for a long time now and I’m finally getting around to it.  Originally, I was hoping that the Oracle Forums would be an interactive resource but with almost 20,000 registered members, it is too difficult to moderate.

So here it is, my new blog.  Feel free to join and comment!

- V.J. Jain

Siebel EAI Roadmap - Part 4 of 4

Graham Doe - Mon, 2009-06-01 13:58
However, as a final point I should stress the optional aspect of these evolutions. All new EAI functionality will be delivered via the SOA Suite architecture but if the existing Siebel EAI stack meets a customer’s needs there is no requirement for them to upgrade today. The same is true for UCM, or any other Oracle application that Siebel integrates with... BI Publisher is a special case however, as Oracle have elected not to continue the relationship with Actuate BI Publisher will become the reporting solution delivered with the Siebel product. In fact, given how long it's taken me... Graham

Siebel EAI Roadmap - Part 3 of 4

Graham Doe - Mon, 2009-06-01 03:56
One of the key technology stacks that had “stagnated” in recent years was the Siebel EAI stack. With a small number of notable exceptions the standards support that Siebel EAI provided was firmly rooted in earlier versions of the standards. On examination this stack would require a huge investment in time in order to bring it up to current standards, and by then the market would, no doubt, have moved on again. Again, looking at the premis that the Siebel EAI Stack (which is effectively a very small C++ middleware) was written because it needed to be it quickly... Graham

Ask the Experts - 90

Nitin Pai - Fri, 2009-02-20 09:37
Hi My client is upgrading from FO 8.4 FS 8.4 HRMS 8.3 to FS 8.9 HRMS 8.9. Current FO 8.4 is going to be part of FS & HRMS 8.9. How do I get a list of current FO 8.4... Nitin Pai

Ask the Experts - 89

Nitin Pai - Fri, 2009-02-20 09:14
Hi,I have a strange situation in our TEST environment.In HRMS - Workforce Administration > Job Information > Job Data.We are terminating some IDs. But, the SAVE is NOT happening. Its page shows the message "Saved".But the 'TER' action row does... Nitin Pai

Ask the Experts - 88

Nitin Pai - Fri, 2009-02-20 07:54
I am very new to PeopleSoft but it has been running for about two years in my company. I have the task of loading new employee information. I have the information in a database and currently people are re-entering all... Nitin Pai

Ask the Experts - 87

Nitin Pai - Mon, 2009-02-16 14:21
I have created a permission list and included 4 components from the Menu into it. After assigning role to user, user can access all 4 components and its pages. After sometime I marked one more component as "Authorized" in the... Nitin Pai

Ask the Experts - 86

Nitin Pai - Mon, 2009-02-16 14:16
we've been experiencing problem in Absence Approve/Deny Process. we're encountering the error message "1 No Rows exist for specified keys. {GP_ABSENCE_EVENT} (91,50) No rows exist on the database with the specified keys. (0,0)". we cant find a permanent solution on... Nitin Pai