Oracle® Fusion Middleware Developer's Guide for Oracle SOA Suite 11g Release 1 (11.1.1.5.0) Part Number E10224-08 |
|
|
View PDF |
This appendix describes normalized message properties.
This appendix includes the following sections:
Header manipulation and propagation is a key business integration messaging requirement. Oracle BPEL Process Manager, Oracle Mediator, Oracle JCA adapters, and Oracle B2B rely extensively on header support to solve customers' integration needs. For example, you can preserve a file name from the source directory to the target directory by propagating it through message headers. In Oracle BPEL Process Manager and Oracle Mediator, you can access, manipulate, and set headers with varying degrees of user interface support.
Figure H-1 provides details.
Figure H-1 Properties Tab for Normalized Messages Header Properties
A normalized message is simplified to have only two parts, properties and payload.
Typically, properties are name-value pairs of scalar types. To fit the existing complex headers into properties, properties are flattened into scalar types.
The user experience is simplified while manipulating headers in design time, because the complex properties are predetermined. In the Mediator Editor or Oracle BPEL Designer, you can manipulate the headers with some reserved key words.
However, this method does not address the properties that are dynamically generated based on your input. Based on your choice, the header definitions are defined. These definitions are not predetermined and therefore cannot be accounted for in the list of predetermined property definitions. You cannot design header manipulation of the dynamic properties before they are defined. To address this limitation, you must generate all the necessary services (composite entry points) and references. This restriction applies to services that are expected to generate dynamic properties. Once dynamic properties are generated, they must be stored for each composite. Only then can you manipulate the dynamic properties in the Mediator Editor or Oracle BPEL Designer.
For more information on normalized message properties, see Oracle Fusion Middleware User's Guide for Technology Adapters and Oracle Fusion Middleware User's Guide for Oracle B2B.
Table H-1 lists all the predetermined properties of a normalized message for Oracle BPEL Process Manager.
Table H-1 Properties for Oracle BPEL Process Manager
Property Name | Propagatable (Yes/No) | Direction (Inbound /Outbound) | Data Type | Range of Valid Values | Description |
---|---|---|---|---|---|
|
Yes |
Both |
String |
Any string, size limit: 1000 |
This contains extra information with which you want to associate the BPEL instance. Whatever was passed in is stored in the metadata column of the |
|
Yes |
Inbound |
String that can be read into an integer |
(1-10). 1 being the highest priority |
Goes into the |
|
No |
Inbound |
String |
Any string, size limit: 100 |
Goes into the |
|
No |
Inbound |
String |
Any string, size limit: 100 |
This goes into the |
|
No |
Inbound |
String |
Any string, size limit: 100 |
This goes into the |
|
No |
Inbound |
String |
Any string, size limit: 100 |
This goes into the |
Table H-2 lists all the predetermined properties of a normalized message for Web Services Addressing (WS-Addressing).
Table H-2 Properties for Oracle Web Services Addressing
Property Name | Propagatable (Yes/No) | Direction (Inbound /Outbound) | Data Type | Range of Valid Values | Description |
---|---|---|---|---|---|
|
No |
Both |
String |
URI format |
This property specifies the identifier for the message and the endpoint to which replies to this message should be sent as an endpoint reference. |
|
No |
Both |
String |
URI format |
This optional (repeating) element information item contributes one abstract relationship property value, in the form of an |
|
No |
Both |
String |
URI format |
Is a contract between two components communicating asynchronously. |
|
No |
Both |
QName |
Any QName |
This value is passed to the web service to configure the |
|
No |
Both |
QName |
Any QName |
This value is passed to the web service to configure service on the service's callback. It is translated to the WS-Addressing callback endpoint reference's |
|
No |
Both |
String |
URI format |
This required element (whose content is of type |
|
No |
Both |
String |
URI format |
This optional element (whose content is of type |
Oracle BPEL Process Manager uses bpelx
extensions to manipulate normalized message properties in message exchange operations. The syntax is different based on whether your BPEL project supports BPEL version 1.1 or 2.0.
Example H-1 shows bpelx
extensions syntax in BPEL 1.1.
Example H-1 bpelx Extensions Syntax in Normalized Message Headers in BPEL 1.1
<invoke ...> <bpelx:inputProperty name="NCName" expression="string" variable="NCName" part="NCName" query="string"/>* <bpelx:outputProperty name="NCName" expression="string" variable="NCName" part="NCName" query="string"/>* </invoke> <receive ...> <bpelx:property name="NCName" expression="string" variable="NCName" part="NCName" query="string"/>* </receive> <onMessage...> <bpelx:property name="NCName" expression="string" variable="NCName" part="NCName" query="string"/>* </onMessage> <reply ...> <bpelx:property name="NCName" expression="string" variable="NCName" part="NCName" query="string"/>* </reply>
Example H-2 shows bpelx
extensions syntax in BPEL 2.0.
Example H-2 bpelx Extensions Syntax in Normalized Message Headers in BPEL 2.0
<invoke ...> <bpelx:fromProperties>? <bpelx:fromProperty name="NCName" .../>+ </bpelx:fromProperties> <bpelx:toProperties>? <bpelx:toProperty name="NCName" .../>+ </bpelx:toProperties> </invoke> <receive ...> <bpelx:fromProperties>? <bpelx:fromProperty name="NCName" .../>+ </bpelx:toProperties> </receive> <onEvent ...> <bpelx:fromProperties>? <bpelx:fromProperty name="NCName" .../>+ </bpelx:fromProperties> </onEvent> <reply...> <bpelx:toProperties>? <bpelx:toProperty name="NCName" .../>+ </bpelx:toProperties> </reply> <reply ...> <bpelx:toProperties> <bpelx:toProperty name="NCName" .../> </bpelx:toProperties> </reply>
Note the following details:
The toProperty
is a from-spec
. This copies a value from the from-spec
to the property of the given name.
The fromProperty
is a to-spec
. This copies a value from the property to the to-spec
.