Skip navigation.

Feed aggregator

OracleOverflow?

Jeff Kemp - Sun, 2010-06-20 22:30
I’ve enjoyed reading and participating in StackOverflow for over a year now. With the introduction of Area51, there is now the possibility of starting a new Q&A site for all things Oracle – as pointed out by Rob Van Wijk and Gary Myers. Sure there are other fora such as OTN, but they don’t have the [...]

Architecture as a navigation system

IT Eye - Wed, 2010-06-16 04:52

Ever tried explaining architecture to a layman? How did you do it? Did you, at some point, refer to the original field of architecture – the one associated with names like Gaudí, Koolhaas and Hundertwasser? Maybe the layman brought it up himself? Did it help the discussion?

Probably it did, actually. While IT and Business architecture isn’t really the same, the original field of architecture works well as a metaphor. It’s such a natural comparison that it doesn’t feel as a metaphor. Plus, it fits kinda neatly – as long as you don’t look too close. And that’s exactly where the metaphor loses its value, both because the layman’s knowledge of brick-and-mortar architecture proves inadequate and because, in the end, the fields are just not the same.

Still, metaphors have value in communicating different aspects of architecture. So I’d like to explore different perspectives on architecture using different metaphors, starting with: navigation!

‘Turn left after the next project, onto new middleware street’

Most of us know what a navigation system is, right? Disregarding the humorous mistakes these things can sometimes cause, they can make our lives a lot easier. Just type in your destination, your preferred type of route, and it will calculate a route for you. Easy as pie, isn’t it?

Well, no not really. There’s a lot going on below the surface which needs to be arranged for a navigation system to function properly. Think about it:

1)      How would you like to travel? Shortest distance? Fastest route? Avoiding highways? By pre-set waypoints? Only traveling outside rush hours? There are so many options, all of which affect how ‘good’ a certain route is.

2)      The environment isn’t static, but dynamic. Traffic jams grow or dissolve, road work temporarily closes down stretches of road, or 50.000 football fans celebrating their team’s first championship ever bring your progress to a standstill. So, you need to be in touch with the world – to be connected – and to constantly recalculate your route.

3)      How do you know you’ve arrived at your destionation? The system will need both a ‘test’ – co-ordinates – and a ‘method’  - GPS – to determine whether or not you’ve reached your destionation.

4)      Last but not least, there’s you! Because even if the system gives you a perfect route, with perfect driving instructions, it does not drive the car. That´s what you are for – the driver. And you can choose to do whatever you want, including completely ignoring the instructions and taking a different route.

Comparison to architecture

So, what does this comparison show us about architecture and the process by which it is implemented? Your destination is your business strategy – it’s where your company wants to be. The actual architecture are the co-ordinates, or the manner in which you can test if you have arrived at the destination. The route are the changes you make to your company. It could be implementing new middleware, changing process owners and service-enabling existing applications. I’ll leave the interesting question of who the driver is in this metaphor for later. Let’s first look at those 4 aspects:

1)      The preferred route. The same thing exists in IT architecture. Do you want to use current personnel and expertise? Would you prefer to sit out your system lifecycles before updating them? Do culture changes preceed or follow technology changes? Questions that impact not only the timing, but also the architecture itself!

2)      The connection. This is so very crucial! An architecture team needs to know what’s going on. Where do projects stall (traffic jams), what projects are going on that should work under architecture (road work), what stakeholders are likely to resist the architecture (the fans blocking the highway), all of that influences the route while driving it.

3)      The destination. As said, the business strategy is your destination. The architecture itself, with all of its principles, guidelines and models, is how you test whether or not the company – or rather, its operations – is ‘there’. Far more complicated than in navigation, indeed.

4)      The driver. Someone drives the car. That someone can’t be the architect – he’s the algorithm, the heart of the navigation system. So who is? Well, looking at the metaphor, shouldn’t the driver be the one who actually wants to be at the new destination? And, thus, a representative of the organization, such as a board of directors or a ‘business board’ or something?
But most importantly: the car isn’t being controlled by the navigation system, but by the driver. This holds true for architecture as well: the architect isn’t driving the organization, but the business representative is. They have to choose, they are in control of the route.

Lessons learned

So, what can we learn from this metaphor? A quick summary…

  • An organization will have to do the driving themselves. For which they should be happy.
  • You can deviate from a route. A good architect will lead you from your new position to your destionation. Just give him/her time.
  • Of course, if they want to do that, architects have to know what’s going on, or they can’t adjust the route to the current conditions. So keep them in the loop.

Any more lessons (or metaphors) that are worthwhile? Please comment!

Share and Enjoy: del.icio.us Google Bookmarks DZone LinkedIn SphereIt StumbleUpon Technorati

Permalink | No comments | del.icio.us | Technorati | digg | dzone | StumbleUpon | Architecture

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 [...]

Using maven-glassfish-plugin on windows

IT Eye - Mon, 2010-03-22 05:12

Not a valid Win32-Application
Last week i encountered a problem with my glassfish installation while preforming a deployment with maven.

In my maven i configured the maven-glassfish-plugin and tried to deploy my application. I received the following message:

[INFO] Unable to start domain "webui". IOException: Cannot run program "C:\prog\glassfishv3\glassfish\bin\asadmin": Crea
teProcess error=193, %1 is not a valid Win32-Application

The plugin tries to execute in my glassfish installation the application asadmin. In this directory there are to files with this name. a windows version with the .bat extension and a unix version without a extension. To solve this problem delete or rename the file without an extension to asadmin.sh. Now windows will send the request to the bat file.

Unable to deploy application

After i solved this issue i encountered a second problem. I configured the plugin to use the passwordfile that’s generated in the domain config.

<groupId>org.glassfish.maven.plugin</groupId>
<artifactId>maven-glassfish-plugin</artifactId>
<version>2.1</version>
<configuration>
<glassfishDirectory>${glassfishDirectory}</glassfishDirectory>
<user>${glassfish-user}</user>
<passwordFile>${passwordFile}</passwordFile>
<debug>true</debug>
<echo>true</echo>
<domain>
<name>${project.artifactId}</name>
<adminPort>4848</adminPort>
</domain>
<components>
<component>
<name>${project.artifactId}</name>
<artifact>${project.build.directory}/${project.build.finalName}.war</artifact>
</component>
</components>
</configuration>

This works to start and stop the domain but for deploying an application it doesn’t accept the password file. To solve this problem i created a personal password file in my userhome containing the password of my domain in this case ‘admin’ and changed in my settings.xml the value of passwordFile to my personal password file:

here the configuration in my settings.xml

<properties>
<!-- Glassfish -->
<glassfishDirectory>C:/prog/glassfishv3/glassfish</glassfishDirectory>
<passwordFile>${user.home}/passwd.local.file</passwordFile>
<glassfish-user>admin</glassfish-user>
<userPassword>admin</userPassword>
</properties>

here the content of my passwd.local.file

AS_ADMIN_PASSWORD=admin

Share and Enjoy: del.icio.us Google Bookmarks DZone LinkedIn SphereIt StumbleUpon Technorati

Permalink | No comments | del.icio.us | Technorati | digg | dzone | StumbleUpon | Software development

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 192.168.6.0 netmask 255.255.255.0 {
range 192.168.6.128 192.168.6.254;
filename “pxelinux.0″;
next-server 192.168.6.129;
option broadcast-address 192.168.6.255;
option domain-name-servers 192.168.6.1;
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 libdb.so.2.  This required creating a symbolic link as shown below:

root@localhost ~]# ls /usr/lib/libdb.so.2
ls: /usr/lib/libdb.so.2: No such file or directory
[root@localhost ~]# ln -s /usr/lib/libgdbm.so.2.0.0 /usr/lib/libdb.so.2
[root@localhost ~]# ls /usr/lib/libdb.so.2
/usr/lib/libdb.so.2

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

Details…
Java Exception
oracle.forms.net.ConnectionException:Forms sessionfailed during startup:no response from runtime process
at oracle.forms.net.ConnectionException.createConnectionException(Unknown Source)
at oracle.forms.net.HTTPNStream.getResponse(Unknown source)
at oracle.forms.net.HTTPNStream.doFlush(Unknown Source)
at oracle.forms.net.HTTPNStream.flush(Unknown Source)
at java.io.DataOutputStream.flush(Unknown source)
…………………………………………………………..

I looked into the forms server log file which is given below
$LOG_HOME/ora/10.1.3/opmn/forms_default_group_1/formsstd.out

and found the following error

testMode: false
09/04/09 08:12:17 Oracle Containers for J2EE 10g (10.1.3.0.0) 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/libXm.so.2: ELF file data encoding not little-endian

This required installing the openmotif package from Oracle’s download site http://oss.oracle.com/projects/compat-oracle/files/Enterprise_Linux/  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: libXp.so.6: 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 libXp.so.6 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 http://rpm.pbone.net

[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 http://www.oracle-developer.com. 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!

Things you never wanted to know about SAN's...

Moans Nogood - Sun, 2009-10-11 15:35
Here's some information you will try to forget after reading. It explains why SAN's always cause trouble, why "a firmware upgrade" is really a complete change of an OS and therefor really dangerous (and impossible to plan or test for) and more.

From now on, think of the firmware in a SAN as a whole OS, just bigger. Scary, right?

My question to this very smart guy I know was this:

"Could you repeat what OS'es are used in what SAN's for me? And how many code lines the ExaData is using?"

=======================================================================

oh god...that is a huge question... First, Exadata software is small (less than about 100MB of bits)...but that is an unfair comparison to the glut of stuff in a full-featured array... Exadata has Linux underneath it, but then we execute about 98% User, 2% Kernel so really, the only thing we get from Linux is scheduling and I/O... Exadata is small because it doesn't do any of the fat stuff arrays like Clariion do (e.g., snapshots, remote mirror, etc).

Netapp's is called OnTap and it is a heavily developed BSD (Net/1 to be exact). It is huge and full featured as you can tell by how many add on packages it support, but just in protocol provisioning it is huge. Consider the fact that it can support front-end FC yet the LUNS are actually files in the WAFL filesystem! Wild.

Clariion OS is called FLARE and it sits on top of a full Windows distro (XP). EMC NAS (celerra) is called DART which is written from scratch.

HP StorageWorks Clustered Gateway is Linux +hundreds of thousands of very specialized PolyServe code.

EMC DMX OS is called Enginuity...DMX cpus are Power and I have no idea what the origin of this OS is. If I were a betting man I'd bet that it is scratch like DART.

IBM DS83XX is full blown AIX plus more (this is the old SHARK array) in fact, it is a cluster of AIX boxes in there...

I don't know what HP calls the stuff that runs inside EVA ...

as you can see...it is very confusing.
=======================================================================

Oracle R12 Payables Discount

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

One user posted a question on OTN forums for Payables – http://forums.oracle.com/forums/thread.jspa?messageID=3785430#3785430

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 http://www.digitalteddy.com/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 http://www.digitalteddy.com/Graham

Oracle Discoverer - help people write ugly code :)

Moans Nogood - Thu, 2009-04-09 02:34
There's been a discussion going on among some of my friends about all this horrible-looking (and often badly performing) auto-generated SQL coming out of Discoverer and other tools. Here are some of the comments made during the discussion, and some of my memories of how I got started with Oracle with the help of my good friend Mogens Egan...

=======================

Me:

"Oracle Discoverer - helping developers write ugly code for more than a decade."

=======================

NN:

"no no no!

the real beauty of discoverer (and similar tools) is not that it lets developers write ugly code, but it lets people who don't know what code is (business users), write code and share it with other users who also don't know what code is. It's entire purpose in life is to let people who don't know what they are doing, do it. developers do what they do with some understanding and can, sometimes, be educated. accountants and hr people can't."

=======================

Me:

"This brings me back. From 1987 to 1990 I was in a bank, sharing an office with Mogens Egan (the father of Morten Egan) and basically creating a datawarehouse (although we didn't know it) for internal users in the bank.

Our strategy was this:

1. Every night (or once a week or whatever) we would transfer data from the banks mainframe system via a SNA gateway to our VAX. The data came from IMS databases and was delivered as flat ASCII files (one physical record = one logical record) which often resultet in very very long records, of course, since IMS is hierachical. We would then load it into tables and let the users access it.

2. I would hold one- or two-day courses where I'd teach the attendees (who had probably only used a PC for a very short time) how to log onto the VAX using Smarterm, how to use VMS basic commands (including the editor), how to use SQL and SQL*Plus, how to create default forms in Forms 2.3 - and some other stuff.

3. Mogens Egan's idea was that it was better to turn users/experts (SME's in todays jargon) into "programmers" than vice versa. And then it should be our job to fix run-away jobs (read: SQL that performed bad or messed up things for others).

A rather anarchistic approach, you could say. But man, it worked. In three years we had 1000 users, some of who turned out to be natural super users, who started creating systems that helped their co-workers.

Since they were not officially named super users they couldn't demand to be given time to develop something they thought could be useful - they were by natural selection only allowed to spend time on something their co-workers thought useful.

Mogens and I are still in contact with many of those users. The machine is now an Alpha cluster, the data it manages runs a rather large banks' trading stuff, and all that - but its name is still Samson. And the super user we created back then is still called Supermule, which is the Danish name for Super Goof. With the introduction of English-speaking consultants in the last 10 years it has proved a minor mistake - they all ask "What's a super mule?"

So yes, we had many incidents of run-away jobs where the poor user had issued a SQL statement without the proper where-clause, etc. But then we would discover it, kill it, help the user - and all of the victims of this bad SQL knew it could be their turn one day, so they didn't get mad or upset.

That playground which we created back then generated a lot of Oracle-lovers who are still around in various higher positions, and perhaps it would have been even easier for them back then if we had had Discoverer.

So I think you're absolutely right: Discoverer will help computer-illeterates write really bad code even faster. But at least it gets them to use Oracle, and it creates wonderful problems that finances our fantastic lifestyles.

Mogens

PS: In the World as a whole, I think Discoverer had a presence (penetration) of about 2% of customers. In Denmark it was 20% due to my ex-wife Laila (Nathalie's mother), then product sales rep for Discoverer, who insisted that every single customer should have this product, like it or not. And notice how well Miracle is doing here. Perhaps there's a relationship."

===================================