Entries Tagged 'Project Management' ↓

Building Oracle ADF BC4J/JSF applications with Embedded Mule ESB

During implementations of packaged software, IT consultants always face the challenge of changing the program logic. Be it an ERP application or a bug tracking solution, each customer insists on its own ways of conducting business and requires that software supports it. In many cases consultants can configure the software to meet customer’s requirements. However, there are situations when consultants have to extend the software.

Software extensions are largely divided into two main categories: extensions and customizations. Extensions are formed by custom code which does not alter any of the standard code shipped with the software or which alters the code allowed to be changed, i.e. extension points. Customizations are formed by custom code which alters the standard code shipped with the software.

In this article I discuss a technique of building extension points into an ADF BC4J application using Mule ESB.

building-oracle-adf-applications-with-mule.pdf

Service Contracts XML Publisher Reports

Have you noticed the four OKS XML Publisher Reports which come with Oracle eBS 11.5.10? Have you noticed there is no published data source for it? Have you noticed that in the sample documents tax is hardcoded to 10%? We have. The XML generation mechanism is hardcoded inside ContractInfoAMImpl.java and some other classes with all the bugs which come with it.

We created published data sources for OKS documents so that you can modify them. We rewrote ContractInfoAMImpl.java so that we never had to come back to it. All the data you need comes from the published and tested data sources. If you are interested, please, contact us and we will install this extension for you.

Murphy’s Law & Offshore Development

Have you ever worked with offshore developers? Have you noticed that every onsite consultant is personally interviewed by the client or project manager, while offshore developers are just given in bulk? You cannot even request resume of offshore developers, probably, because it is as unimpressive as a new ream of paper. I noticed this practice on all projects with ‘blended’ delivery, (read, software development offshored to India) which I had a chance to be part of.

This inequality creates significant gap in experience between onsite consultants and offshore consultants. On one of the project an offshore ‘resource’ asked me for the meaning of my request to ‘keep the DFF compiled’. Now I am laughing over a mug of beer when I remember that conversation, however, at that time I was about to cry; I had to delivery a very complex project with this type of ‘resources’. Continue reading →

MD200

Many large scale projects hope to reduce the development cycle by combining design documents into one, so called ‘MD200′. In fact it not only delays code delivery, but also hinders the design flaws and solution interaction. Functional and technical design documents are completely different documents in terms of both contents and audience.

I suggest investing significant amount of time into the technical design documents. The technical design documents must contain a full set of UML diagrams to describe flows within the solution and inter solution dependencies; a complete set of pseudo logic, queries, error handling etc.

By the time technical design passes the acception by the technical lead or solution architect, it reaches the quality where a developer of any qualification can assemble an effective code within a short and manageable period of time. This is how high quality of the delivered code with offshore development centers must be achieved.

Development Standard Cheat Sheet

Many large implementations which we took part in, have volumes of development standards document which nobody reads. Truly, one need to be a saint to read 50+ pages of text and memorize intricacies of naming. What we find useful, is having a cheat-sheet with most ‘critical’ standards whose violation render severe damage to the development process. Adjusted to my current implementation the cheat sheet or survivor’s guide looks like this. Continue reading →

JFreeChart

There is a great article about JFreeChart on OTN. We used this library in earlier versions of Hermes and liked it a lot. Though, the general direction with Hermes is to report using Excel or other reporting tools, we may bring some visual reports back into it using JFreeChart.

Version Control Tools

cd971.jpg

The most common screen which I see when using IBM ClearCase is the unavailability screen on top of the fact that it requires client software installed. Never saw anything like this with Mercury PVCS.

x_msg_data

Everybody who works with Oracle eBusiness Suite PL/SQL APIs knows the list of standard parameters which each public API must have. There are two IN parameters: p_api_version, and p_init_msg_list; and thee OUT parameters: x_return_status, x_msg_count, x_msg_data.

The reason for IN parameters is quite easy. You use p_api_version to separate major changes to the business logic. Practically, though, it is always 1.0. You use p_init_msg_list to initialize the message list which may exist in the current database transaction. x_return_status is a very important OUT parameter, it says whether API successfully finished. Continue reading →

BPEL - False Error

The other day I had to design a BPEL process to interface data into Oracle eBusiness Suite. I built the validation logic via a PL/SQL procedure and expected to use Oracle Applications adapter to call it from the BPEL process. Everything went fine except the output variable from the invocation process did not seem to be populated.

Using the transformation node I dragged the return parameter to a local variable which produced the following code:

Continue reading →

Naming Conventions

Each Oracle eBusiness Suite implementation has heated debates on the object and file naming convention.

When it comes to the naming convention for custom objects there are debates on whether to include gap number, application module or some other identifying information into the name of the object. Let us consider a naming convention for a PL/SQL package in the form ____PKG, for example XBOL_1201_AR_SAMPLE_PKG. When you do a vanilla implementation with minimum number of gaps, any naming convention will do. However, when implementation is complex with numerous gaps, which is very typical for Oracle Lease Management implementation, adding ‘identifying’ information into the object name may be very misleading.

Continue reading →