Posts

OSB 12c Xquery function to convert the date of credit card expiry date to yyyy-MM-dd

I had a requirement to convert the credit card expiration date in the form of “201506” to “yyyy-MM-dd”. The challenge here is adding the day value, we have to add the last day of the respective month. For example, if we get 201502, the converted date should be “2015-02-28” Here is the function to convert this date format. Xquery: xquery version "1.0" encoding "utf-8"; (:: OracleAnnotationVersion "1.0" ::) declare namespace functx = "http://www.functx.com"; declare variable $inputDate as xs:string external; declare function functx:days-in-month   ( $date as xs:anyAtomicType? )  as xs:integer? {    if (month-from-date(xs:date($date)) = 2 and        functx:is-leap-year($date))    then 29    else    (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)     [month-from-date(xs:date($date))] } ; declare function functx:is-leap-year   ( $date as xs:anyAtomicType? )  as xs:boolean {            for $year in xs:integer(subs

OSB actions in proxy service

Image
In this post we will see about different types of actions to message flows using the Oracle Service Bus Administration Console, such as route, publish, service callout, transport headers, conditional actions, error actions, and message transformation actions. Actions are the elements of pipeline stages, error handler stages, route nodes, and branch nodes that define how messages are to be defined as they flow through a pipeline            Action                           Description                     Dynamic Publish Publish a message to a service identified by an XQuery expression                          Publish Publish a message to a statically specified service.                        Publish Table Publish a message to zero or more statically specified services. Switch-style condition logic is used to determine at run time which services will be used for the publis

Oracle SOA 12C Features

Below are some of the key features of 12C  which is going to release in June 2014 . 1.     OSB will be no longer be part of Eclipse. It has been integrated in Jdeveloper 12c. 2.     OSB instances can be track from EM Console which was not there in OSB 11g. 3.     OSB will support both REST as well as SOAP. REST Adapters has been added for OSB,SOA in Jdeveloper 12c. 4.     Installer  will  contain only one file which will install all the Oracle Fusion Components. 5.     We can test the services from Jdeveloper itself. 6.     Debugging will be easy as Togglepoints are added in Jdeveloper 12c, which was earlier possible  in Eclipse. 7.     Oracle will provide migration scripts which will migrate existing 11g components to 12C. However, migration only possible for 11.1.1.6 or 11.1.1.7 versions of SOA. 8.    N ew adapters for Cloud has been added in Jdeveloper 12C . Example:- Salesforce adapter. 9.     New  feature MFT(Managed File Transfer) is added to support fast file

Difference between Route, Service Callout, Publish

When you are first starting with OSB it can be a little tricky to determine when to use a Route, Service Callout or a Publish node.  All three can be used to call either a Business service or a local Proxy service.  You can use the following lists to determine which will best fit your needs. Route Last node in request processing.  It can be thought of as a bridge between request pipeline processing and the response pipeline processing. You can only execute one route in your Proxy Service. Can only be created in a route node. OSB will wait for the Route call to finish before continuing to process. If you are calling a Business service  and  you specify  Best Effort  for QoS (Quality of Service), then OSB will release the thread it is holding while the business service executes. If you are calling a Business service  and  you specify  Exactly Once  or  At Least Once  for QoS, then OSB will hold onto the thread while the business service executes. If you are calling a l

Unable to find Fault variable in RemoteFault

Image
If you are placing a catch block in your service invocation and trying to catch a system remotefault/bindingfault  , you can have following issues : 1. First , your faultVariable is not having any child element like code,summary and detail which are part of the RuntimeFault.  2.  Second, when you try to compile the composite, you get below error: Error(76): WSDL messageType "{http://schemas.oracle.com/bpel/extension}bindingFault" of variable "" is not defined in any of the WSDL files  Reason for above issues and solution: The reason why you get this is because when you select the system->RuntimeFault as type of fault in your fault handler, JDeveloper copies a wsdl named RuntimeFault.wsdl  from your <JDEVELOPER_HOME%\\integration\seed\soa\shared\bpel directory to your project and this wsdl contains following msg : <?xml version="1.0" encoding="UTF-8"?> <definitions name="RuntimeFault"              targetNames

SOA FAQ

What is singleton Property in SOA?       In the clustered environment when the processing of the message should happen via only one SOA managed server, then the property singleton needs to be defined at the adapter level.          What is a pick activity? Can I have a pick activity with no onMessage branch?         Pick activity picks the messages from service (Source) which has multiple operations or the BPEL process needs to receive the messages from multiple source system. Pick activity should have at least on Message branch.       What is a flow activity? What is a flowN activity and how does it leverages the flow activity? F   Flow activity is used, when parallel execution of the flow is needed and to use this property “non blocking invoke should be set as true “at the partner link level and no. of execution of parallel flow is defined and static. Where as in Flown the no. of execution of parallel flow is not static and it is determined d