Thursday, March 24, 2011

Installing and using ScrumWorks on Linux

ScrumWorks is an agile management software by CollabNet meant for an enterprise and comes in 2 flavors : ScrumWorks Pro and ScrumWorks Basic.

To run Scrumworks on your linux box, you need to install the server.
a. Download the ScrumWorks Basic Linux distribution file from the download site.
b. Extract the file in the directory you want to install ScrumWorks Basic to.
c. Change to the directory that was created during extraction.
d. Run ./setup.sh to configure your server and get instructions for starting it.

A pre-requisite to do the above installation is to have JDK already installed on your machine. However, right now, apparently, Scrumworks Basic only supports JDK2. Higher versions are not supported yet. So, you need to have version 2 necessarily installed for sure!!

Sunday, February 27, 2011

Error 46 initializing SQL*Plus HTTP proxy setting has incorrect value SP2-1502: The HTTP proxy server specified by http_proxy is not accessible

I hit the above error when I was trying to startup the zipdb installed on my linux box, after a system reboot. What I precisely did to get rid of this error and successfully start the Db is:-

1. Unset the environment variable http_proxy
2. Set / Export the variable http_proxy to http://localhost.

That worked and....the zip db was UP and RUNNING!!

Friday, February 18, 2011

Installing sqldeveloper on a linux box

To install sqldeveloper on a linux 64 bit machine, follow the below steps:-

1. Download the sqldeveloper rpm.
2. Install the rpm using the command 'rpm -ivh '
3. If you're not logged in as root user, you could encounter an error like
error: can't create transaction lock on /var/lib/rpm/__db.000. In this case log
in as root used and retry the installation.
4. The sqldeveloper mostly gets installed at location
/opt/sqldeveloper/sqldeveloper and can be invoked using the command :-
/opt/sqldeveloper/sqldeveloper.sh
5. A pre-requisite to install and run the sqldeveloper in your linux box is to
have jdk installed. At the time of invoking sqldeveloper you might come across a
warning message which reads :-
'Type the full pathname of a J2SE installation (or Ctrl-C to quit), the path will
be stored in ~/.sqldeveloper/jdk'.
6. In such a case you need to quit and put in the path of the jdk install location
in the 'SetJavaHome' variable inside a file called sqldeveloper.conf.





(Sqldeveloper software or other softwares meant for linux boxes are packaged in the rpm file format. RPM typically stands for Red Hat Package Manager / RPM Package Manager)

Friday, February 4, 2011

My first look at Soa Composite Applications

The basics of a Soa-composite application :-

A composite.xml is a file that is automatically created when you create a SOA project. This file describes the entire composite assembly of services, service components,references, and wires that make up a Soa composite application.

The following are the four basic components of a Soa-composite application

* Service Components - Once you create your application, often the next step is to add service components that implement the business logic or processing rules of your application. You can use the Component Palette from the SOA Composite Editor to drag and drop service components into the composite.

* Service Binding Components - You add a service binding component to act as the entry point to the SOA composite application from the outside world.

* Reference Binding components - You add reference binding components that enable the SOA composite application to send messages to external services in the outside world. (The reference binding components should be services with wsdl's created either by you or someone else on a local or a remote machine which can be given a reference to, from your application)

* Wires - You wire (connect) services, service components, and references. For this example, you wire the web service and service component. You cannot wire services and composites that have different interfaces. For example, you cannot connect a web service configured with a synchronous WSDL file to an asynchronous BPEL process


The adjacent figure shows a diagrammatic view of a bpel process



















This figure shows a diagrammatic view of the composite.xml file




Oracle SOA Suite Service components:

*Oracle Mediator
*Oracle BPEL process
*Human workflow (using a human task)
*Oracle Business Rules
*Spring
*Oracle User Messaging Service
*Oracle Business Activity Monitoring
*Oracle Metadata Repository

Thursday, January 27, 2011

EOs with transient Attributes - will they be locked if no other change?

Found this post on an internal forum and thought of putting it down here :-

Problem :
We have some EOs with some attributes not mapped to any DB Table Column whereas some other attributes are mapped to DB Table columns. During runtime, sometimes we set only these "transient" attributes in the underlying EO and not the Column-mapped Attributes.
The question is, if we call am.commit(), will ADF Framework try to lock()/commit() these EOs with only changes in transient attributes?

Solution:
1.Modifying an attribute marks the entity as changed whether it's transient or not. To avoid this, you can use populateAttribute instead of setAttribute to set the transient attributes. If they are set from the UI, you can override setAttribute to call populateAttribute. The overview for EntityImpl javadoc here has a good explanation of set and populate methods. Same methods available in the view row.

2.Run time would mark the specific EO instance as dirty (STATUS_MODIFIED), and will take the EO through normal Txn cycle. However only those modified persistable attributes are posted back to DB

Thursday, January 20, 2011

InvalidOperException : JBO-25221

Requirement: AUTO-COLLAPSE OF REGIONAL AREA WHEN IN THE INSIDE FORECAST AREA (which is the main area). In my case, the Regional area and main area taskflows belong to different projects.

Implementation: This requires methodAction bindings to be added in the page definition files where the collapse and disclose needs to be implemented. Also, a separate RegionController bean which will have the method call.

Exception : At run time, I faced an exception which looked something like this :-
JBO-25221: Method FndUIShellController.dataProvider.collapseRegionalArea() not supported
ADF_FACES-60097:For more information, please see the server's error log for an entry beginning with: ADF_FACES-60096:Server Exception during PPR, #2

Solution:
The issue got resolved after I added the following to the dataBindings.cpx file :-
<dc id="FndUIShellController"
path="oracle.apps.fnd.applcore.uicomponents.view.FndUIShellController"/>

Sunday, January 16, 2011

Composition Associations



A composition association represents a relationship between entities, such as an entity A (eg: DepartmentEO) referenced by an entity B(eg:EmployeeEO) or a entity C(eg:BonusEO) contained in an entity B(eg:EmployeeEO). When you create composition associations, it is useful to know about the kinds of relationships you can represent, and the various options.

Associations between entity objects can represent two styles of relationships depending on whether the source entity:

* References the destination entity
* Contains the destination entity as a logical, nested part

For example, an EmployeeEO entry references a DepartmentEO. This relationship represents the first kind of association, reflecting that a DepartmentEO or an EmployeeEO entity object can exist independent from each other. In addition, the removal of an Employee does not imply the cascade removal of the Department to which it was referring.

In contrast, the relationship between EmployeeEO and its collection of related BonusEO details is stronger than a simple reference. The BonusEO entries comprise a logical part of the overall EmployeeEO. In other words, a EmployeeEO is composed of BonusEO entries. It does not make sense for a BonusEO entity row to exist independently from an EmployeeEO, and when an EmployeeEO is removed — assuming the removal is allowed — all of its composed parts should be removed as well. This kind of logical containership represents the second kind of association, called a composition association.