Wednesday, December 29, 2010

FOTY0001: Type Error

I have encountered the below error during runtime many a time:

ORABPEL-09500
XPath expression failed to execute.
Error while processing xpath expression, the expression is "ora:processXSLT('Transformation_5.xsl',bpws:getVariableData('inputVariable','payload'))", the reason is FOTY0001: type error. Please verify the xpath query.

This error, though mentions the reason for failure was due to a xpath expression, when one executes the xslt using xalan or test option of Jdeveloper, the xslt works fine. I later found that the part name was missing in the transformation node where the xsl was used. This could be because, the bpel file was edited prematurely even before the details of the node were loaded or could be an actual issue with the schema (in case of first timers)!

Always check if the part name in the transformation node are present and are correct before debugging further on this error. I found the this link useful when I was debugging.

Please note this is only one such FOTY0001 error (most common) and one such solution which worked for me. There could be many other reasons for the error in different scenarios and hence different resolutions.

Cheers,
-AR

Saturday, December 18, 2010

Oracle Business Rules as a Composite Service

The general practice of using Oracle Business Rules is to create a set of rules in a dictionary and this dictionary in turn will be invoke by a bpel, which would have been exposed as a web service or composite service. But there are cases where a bpel is not needed and one needs the service of just rules.

In those particular cases, the dictionary themselves can be exposed as a composite service. So a web service would be created which would directly interface with the dictionary. A couple of points has to be noted when doing this and apart from that, its just a normal rules configuration, soa composite deploy and test:

Create an empty composite, just add a dictionary and make sure to mark the dictionary for the below:





































When testing the service, it would require the name of the decision function to be passed. Earlier this was taken care by the bpel when we used to drag drop the business rules component and choose the dictionary and decision function:











Cheers,
-AR
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License