ExtendedServiceInvoker
Extended Service Invoker allows users to connect to an existing extended service, which is achieved by communicating with the ports exposed in Port Configuration of that extended service.
The ports can be added in synchronous pairs each constituting one input port and one or more output ports. In such a synchronous case, the messages can have ‘Execution Timeout’ and ‘Time to Live’. Ports that are not included in synchronous pairs will be treated as asynchronous ports.
Component Configuration
The configuration for ExtendedServiceInvoker is defined in the ExtendedServiceInvoker Configuration Property Sheet (CPS) as shown in the figure below.

Figure 1: ExtendedServiceInvoker CPS
Attributes
Error Handling Configuration

Figure 2: Error handling configuration
The remedial actions to be taken when a particular error occurs can be configured here. Click the ellipses button against this property to configure Error Handling properties for different types of errors. By default, the options Log to Error Logs and Send to error port are enabled.
Please refer to the Error Handling section on the Common Configurations page for documentation.
FES Connection Configuration
Details of Enterprise Server Connection can be provided by clicking the ellipses button.

Figure 3: FES Connection Configuration
URL
The URL of the enterprise server to which the peer server on which the component is running is connected.
Username
User name that should be used to connect to the enterprise server.
Password
Password that should be used to connect to the enterprise server.
Backup URL
The alternate URL that should be tried for connecting to the enterprise server if the enterprise server cannot be connected to using the URL mentioned against the property FES URL.
In case of enterprise servers in HA mode, this should point to a secondary server URL if the primary is set against the Server URL property and vice-versa.
Server Call Timeout
Sets the timeout for the calls made to the Enterprise Server. The default value is 180 Seconds.
This value should be increased to avoid timeout with the Enterprise server while launching Components.
Port Configuration

Figure 4: Port Configuration panel
Extended Service Name
Name of the extended service which has to be invoked.
Synchronous Ports Table
Table to which Synchronous Port Pairs can be added.
InputPort & OutputPorts
Select synchronous port pairs. Each pair can have one input port and one or more output ports. Click the Add button to add ports. Click the ellipsis button in the table cell to select the desired port.

Figure 5: InputPort selection window

Figure 6: OutputPorts selection window
Create connection at startup
JMS Connection for the ports to be created when the component is launched (enabled state) or when the first message arrives (disabled state).
Execution Timeout (millisec)
Timeout to process the message in synchronous case in milliseconds.
The Execution Timeout property and the Time To Live property described below will be visible in the CPS only in case of Synchronous Port and only after adding ports in the Port Configuration panel.
Time To Live (millisec)
Time for which the message can be alive in synchronous case in milliseconds.
Expert Properties
Enable the Show Expert Properties checkbox to make the expert properties visible.
Expert properties are meant for advanced users; please use them with caution.

Figure 7: CPS with Expert Properties enabled and highlighted
Attributes
Pre Processing XSL Configuration
Pre Processing XSL configuration can transform the request message before processing it. Click the ellipses button against the property to configure the properties.
Refer to the Pre/Post Processing XSL Configuration section under the Common Configurations page for details regarding Pre Processing XSL configuration and Post Processing XSL configuration (below).
Post Processing XSL Configuration
Post Processing XSL configuration can transform the response message before sending it to the output port.
Process Message Based on Property
The property helps components to skip certain messages from processing.
Refer to the Process Message Based On a Property section under the Common Configurations page.
Functional Demonstration
This demonstration uses Extended Service Invoker to invoke ExtendedService1 where XMLSplitter1(refer to the Functional Demonstration section, Scenario 1, in the XMLSplitter microservice help page for configuration) is deployed. The Input and Output ports of XMLSplitter1 are exposed in the Properties panel which is displayed in the Port Configuration tab.

Figure 8: Extended Service for demonstration

Figure 9: Sample flow with ExtendedServiceInvoker
Sample Input
<ns1:BookStore
xmlns:ns1="http://www.books.org">
<ns1:Book>
<ns1:Title>StoryOfLife</ns1:Title>
<ns1:Author>Bailey</ns1:Author>
<ns1:Date>11/05/2021</ns1:Date>
<ns1:ISBN>ISBN1</ns1:ISBN>
<ns1:Publisher>RootedBooks</ns1:Publisher>
</ns1:Book>
<ns1:Book>
<ns1:Title>HorrorStory</ns1:Title>
<ns1:Author>George</ns1:Author>
<ns1:Date>21/07/2021</ns1:Date>
<ns1:ISBN>ISBN2</ns1:ISBN>
<ns1:Publisher>GrootedBooks</ns1:Publisher>
</ns1:Book>
<ns1:Book>
<ns1:Title>CountryLife</ns1:Title>
<ns1:Author>Auchentoshan</ns1:Author>
<ns1:Date>31/05/2020
</ns1:Dte>
<ns1:ISBN>ISBN3</ns1:ISBN>
<ns1:Publisher>DistilledBooks</ns1:Publisher>
</ns1:Book>
A) Synchronous Case
Provide the following values in the Synchronous Port Configuration panel:
InputPort: XMLSplitIN
OutputPorts: XMLSplitOUT

Figure 10: Synchronous Port Configuration-Synchronous case
If the input is sent to the XMLSplitIN port, the microservice waits till a response is received in the XMLSplitOUT port. This response is received as output. So, in this case, the first split XML message will be received in the output port.

Figure 11: Output-Synchronous case
B) Asynchronous Case
In the Synchronous Port Configuration panel, click the DeleteAll button to delete all entries. XMLSplitIN and XMLSplitOut will be considered Asynchronous Input and Output ports respectively. Now when the same input is sent, all the split JMS responses are asynchronously received by the consumer listening at XMLSplitOut.

Figure 12: Output-Asynchronous case