Wednesday, July 16, 2008

ORACLE AIA

Today instead of posting something on technical side, I thought of sharing something on Oracle AIA (again), which is the current buzz in the market.

FIRST LOOK:
Oracle AIA (Application Integration Architecture) is developed to widely-accepted open standards. Like everything new from Oracle, AIA revolves around the service-oriented architecture (SOA) concept. It thus represents a first step toward Fusion Applications – one that can be taken without the need for massive conversions or retraining. Hundreds of specific cases where sophisticated application integration is needed have already been identified.
Most IT environments, especially within larger organizations, consist of a variety of applications from a mix of vendors, not to mention custom–made software. It is increasingly necessary to automate business processes that cross the boundaries between these applications. However, creating solutions that obtain data and use the logic of multiple divergent applications tends to be time consuming and complex. Application Integration Architecture (AIA) is Oracle’s proposed approach to reducing the cost and complexity of doing so.

WHAT IS IT?
Let’s define AIA: AIA is a set of standards and rules by which Oracle and its partners can create elegant bridges between applications. Oracle will use AIA to insure that all of them are built the same way using a common approach and set of standards .This is a framework which contains the functionality of various ERP applications owned by Oracle like - Oracle E-Business, Siebel, JD Edwards and PeopleSoft which can be recombined and tailored to enterprise needs.

Technical products inside Application Integration Architecture (Till date*)
1. BPEL Process Manager
2. BPEL Repository
3. E-Business Suite
4. Siebel
5. Adapters
6. Oracle Warehouse Builder
**More in AIA framework regarding JDE and PeopleSoft will be added soon.

COMPONENTS OF AIA:
• Best practices Processes
• Foundation Pack
• PIP (Process Integration Packs)

DISCOVER THE TREASURE:
To make your AIA treasure hunt much easier, here I am providing you with some of the useful links:
• Oracle AIA:
http://www.oracle.com/applications/oracle-application-integration-architecture.html
• AIA Documentation:
http://www.oracle.com/technology/documentation/intarch.html
• PIPs:
http://www.oracle.com/applications/process-integration-packs.htm
• Oracle AIA Foundation Pack:
http://www.oracle.com/applications/oracle-foundation-pack.html
• List of validated integrations:
http://www.oracle.com/partnerships/isv/integration/search.html

Happy learning...

Friday, July 11, 2008

Playing with XSLT: Convert string to dateTime

Seems that most of us feel difficulty in dealing with date & time in XSLT.
PART-1
Problem: This post tells you about how to map a string source column to a date destination column.
Assumptions:
To acheive it I created dummy table in Database,
Table name: Test
SourceColumn name: a_str
SourceColumn Value: 20080514
Destination column name: a_dt

Solution:
Lets say,
XPath Expression: /top:testCollection/top:test/top:a_str=$d

To make the database understand about the date, we need to transform the source value. For that we need to use chain of functions.
Analyse the solution given below:

<ns2:a_dt>
<xsl:value-of select='concat(substring($d,1.0,4.0),"-",substring($d,5.0,2.0),"-",substring($d,7.0,2.0))'/>
</ns2:a_dt>

Bingo...It works.


PART-2
Problem: To map a string source column (containing date and time) to a date destination column.
Assumptions:
To acheive it I created dummy table in Database,
Table name: TestSource
Column name: a_strSource
Column Value: 20080514111213
Destination column name: a_dt


Solution:
Lets say,
XPath Expression: /top:testCollection/top:test/top:a_str=$d

To make the database understand about the date and Time, we need to transform the source value. For that we need to use chain of functions. Notice that a "T" is concatinated in the code. This one is for adding the Timezone.
Analyse the solution given below:

<ns2:a_dt>
<xsl:value-of select="concat(substring($d,1.0,4.0),"-",substring($d,5.0,2.0),"-",substring($d,7.0,2.0),'T',substring($d,9.0,2.0),":",substring($d,11.0,2.0),":",substring($d,13.0,2.0))"/>
</ns2:a_dt>

Bingo...It works.

Thursday, July 10, 2008

XSLT:Examples of Date and Time Formatting-Part-2


Example: Non-Gregorian Calendars
The above example image is for calendars other than the Gregorian calendar.These examples use non-Latin characters which might not display correctly in all browsers, depending on the system configuration.(Source: w3c xslt doc)

XSLT:Examples of Date and Time Formatting


Example: Gregorian Calendar
The following image above shows a selection of dates and times and the way they might be formatted (Source: w3c transformation doc)

Saturday, June 21, 2008

Installing the 10.1.3.3 or 10.1.3.3.1 patch

Problem: I came across this good article over forum and thought of sharing it. When installing the 10.1.3.3 or 10.1.3.3.1 patch, some people are getting an error when they go to the BPEL Console. The error is:

[java.lang.NoSuchMethodException]com.collaxa.cube.ejb.impl.FinderBean.tryLookupInstanceByReferenceId(java.lang.String, com.oracle.bpel.client.auth.DomainAuth)Exception Trace:java.lang.NoSuchMethodException: com.collaxa.cube.ejb.impl.FinderBean.tryLookupInstanceByReferenceId(java.lang.String, com.oracle.bpel.client.auth.DomainAuth) at java.lang.Class.getMethod(Class.jav[a:1581)

Solution:

Let me first clear this, I don't know what's causing the problem, except that sometimes the installer misses a step. A certain server-side JAR file was not updated during the installation of the patch. You can copy it from the client-side. Obviously you start these steps after you installed the patch.

1. Delete SOA_HOME\j2ee\home\applications\orabpel\ejb_ob_engine.jar (or move it if you want to keep a copy of it)

2. Copy SOA_HOME\bpel\system\j2ee\ejb\ejb_ob_engine_oc4j.jar to SOA_HOME\j2ee\home\applications\orabpel

3. Rename SOA_HOME\j2ee\home\applications\orabpel\ejb_ob_engine_oc4j.jar to ejb_ob_engine.jar

4. Restart your server

Hope it works fine...

Saturday, June 14, 2008

BPEL: Getting File Name and directory name from File Adapter

Problem:
How to know the file name and the directory name at run time that we selected during configuring File adapter in our BPEL Process?

Solution:
I will give the answer for this in step wise manner.
1) Create an empty BPEL process.
2) Create a Read File Adapters. This will create fileAdapterInboundHeader.wsdl and .wsdl file.
3) Drag receive activity to the swim lane and link it to the read operation and create variable(choose in receive activity). Check the create instance check box.
4) Create a variable of type InboundHeader_msg, say Varaiable_1 ( this message is chosen from the fileAdapterInboundHeader.wsdl).
5) Create two more variables of simple type (String), say Test1 and Test2.
5) Drag the assign activity. In the assign activity create a copy operation you can see the Variable_1 having two elements i.e. FileName and DirectoryName. You can point these two elements to the variable Test1 and Test2 respectively.
6) Now double click on receive activity go to the "Adapter" tab and choose the above Variable_1 as the Input Header Variable.

Similarly you can do it for File Write Adapter. In this case the fileAdapterOutboundHeader.wsdl contains only one element i.e. file name.

And you are done....Now you can use that value for further operations, depending upon your needs.

Have a happy learning.....