Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
Container of Adapters that belong together.
A configuration may be deployed independently from other configurations.
Names of nested elements like Adapters, Receivers, listeners and senders
can be reused in other configurations.
<br/><br/>
Configurations are shown in the Frank!Console along with their Adapters,
Receivers, listeners and senders. The Adapter Status page of the Frank!Console
has a tab for each configuration that only shows information
about that configuration. See the Frank!Manual for details.Wrapper element to help split up large configuration files into smaller valid XML files. It may be used as root tag when an XML file contains multiple adapters and/or jobs. The Module element itself does not influence the behavior of Frank configurations.reference to a configuration to be included in the current.The Adapter is the central manager in the framework. It has knowledge of both
Receivers as well as the PipeLine and statistics.
The Adapter is the class that is responsible for configuring, initializing and
accessing/activating Receivers, Pipelines, statistics etc.
<br/>
An Adapter receives a specific type of messages and processes them. It has Receivers
that receive the messages and a PipeLine that transforms the incoming messages. Each adapter is part of a Configuration.
<br/>
If an adapter can receive its messages through multiple channels (e.g. RESTful HTTP requests, incoming files, etc),
each channel appears as a separate Receiver nested in the adapter. Each Receiver is also responsible
for dealing with
the result of its received messages; the result is the output of the PipeLine. The result
consists of the transformed message and a state. The Frank!Framework distinguishes between exit states
SUCCESS and ERROR. There is also a state REJECTED for messages that are not accepted by the Frank!Framework
and that are not processed by the PipeLine. If the exit state is ERROR, the result message may
not be usable by the calling system. This can be fixed by adding an
errorMessageFormatter that formats the result message if the state is ERROR.
<br/><br/>
Adapters gather statistics about the messages they process.
<br/>
Adapters can process messages in parallel. They are thread-safe.name of the adaptersome functional description of the <code>Adapter</code>AutoStart indicates that the adapter should be started when the configuration
is started. Default: <code>true</code>If <code>true</code> a null message is replaced by an empty message Default: <code>false</code>number of message displayed in ibisconsole Default: 10Defines behaviour for logging messages. Configuration is done in the MSG appender in log4j4ibis.properties. Default: <code>INFO, unless overridden by property msg.log.level.default</code>If set to <code>true</code>, the length of the message is shown in the msg log instead of the content of the message Default: <code>false</code>Wrapper for a listener that specifies a channel for the incoming messages of a specific Adapter.
By choosing a listener, the Frank developer determines how the messages are received.
For example, an org.frankframework.http.rest.ApiListener receives RESTful HTTP requests and a
JavaListener receives messages from direct Java calls.
<br/><br/>
Apart from wrapping the listener, a Receiver can be configured
to store received messages and to keep track of the processed / failed
status of these messages.
<br/><br/>
There are two kinds of listeners: synchronous listeners and asynchronous listeners.
Synchronous listeners are expected to return a response. The system that triggers the
receiver typically waits for a response before proceeding its operation. When a
org.frankframework.http.rest.ApiListener receives a HTTP request, the listener is expected to return a
HTTP response. Asynchronous listeners are not expected to return a response. The system that
triggers the listener typically continues without waiting for the adapter to finish. When a
receiver contains an asynchronous listener, it can have a sender that sends the transformed
message to its destination. Receivers with an asynchronous listener can also have an error sender that is used
by the receiver to send error messages. In other words: if the result state is SUCCESS then the
message is sent by the ordinary sender, while the error sender is used if the result state
is ERROR.
<br/><br/>
<b>Transaction control</b><br/><br/>
If transacted is set to <code>true</code>, messages will be received and processed under transaction control.
This means that after a message has been read and processed and the transaction has ended, one of the following apply:
<table border="1">
<tr><th>situation</th><th>input listener</th><th>Pipeline</th><th>inProcess storage</th><th>errorSender</th><th>summary of effect</th></tr>
<tr><td>successful</td><td>message read and committed</td><td>message processed</td><td>unchanged</td><td>unchanged</td><td>message processed</td></tr>
<tr><td>procesing failed</td><td>message read and committed</td><td>message processing failed and rolled back</td><td>unchanged</td><td>message sent</td><td>message only transferred from listener to errroSender</td></tr>
<tr><td>listening failed</td><td>unchanged: listening rolled back</td><td>no processing performed</td><td>unchanged</td><td>unchanged</td><td>no changes, input message remains on input available for listener</td></tr>
<tr><td>transfer to inprocess storage failed</td><td>unchanged: listening rolled back</td><td>no processing performed</td><td>unchanged</td><td>unchanged</td><td>no changes, input message remains on input available for listener</td></tr>
<tr><td>transfer to errorSender failed</td><td>message read and committed</td><td>message processing failed and rolled back</td><td>message present</td><td>unchanged</td><td>message only transferred from listener to inProcess storage</td></tr>
</table>
If the application or the server crashes in the middle of one or more transactions, these transactions
will be recovered and rolled back after the server/application is restarted. Then always exactly one of
the following applies for any message touched at any time by Ibis by a transacted receiver:
<ul>
<li>It is processed correctly by the pipeline and removed from the input-queue,
not present in inProcess storage and not send to the errorSender</li>
<li>It is not processed at all by the pipeline, or processing by the pipeline has been rolled back;
the message is removed from the input queue and either (one of) still in inProcess storage <i>or</i> sent to the errorSender</li>
</ul>
<p><b>commit or rollback</b><br/>
If transacted is set to <code>true</code>, messages will be either committed or rolled back.
All message-processing transactions are committed, unless one or more of the following apply:
<ul>
<li>The PipeLine is transacted and the exitState of the pipeline is not equal to SUCCESS</li>
<li>a PipeRunException or another runtime-exception has been thrown by any Pipe or by the PipeLine</li>
<li>the setRollBackOnly() method has been called on the userTransaction (not accessible by Pipes)</li>
</ul>
</p>Sets the name of the Receiver, as known to the Adapter.
If the listener implements the name interface and <code>getName()</code>
of the listener is empty, the name of this object is given to the listener.One of 'continue', 'recover' or 'close'. Controls the behaviour of the Receiver, when it encounters an error during processing of a message. Default: CONTINUEThe number of threads that may execute a Pipeline concurrently (only for pulling listeners) Default: 1The number of threads that are actively polling for messages concurrently. '0' means 'limited only by <code>numthreads</code>' (only for pulling listeners) Default: 1The number of seconds waited after an unsuccessful poll attempt, before another poll attempt is made. Only for polling listeners, not for e.g. jms, webservice or javaListeners Default: 10timeout (in seconds) to start receiver. If this timeout is exceeded, the Receiver startup is
aborted and all resources closed and the receiver will be in state {@code EXCEPTION_STARTING}
and a new start command may be issued again.timeout (in seconds) to stop receiver. If this timeout is exceeded, stopping will be aborted
and the receiver will be in state {@code EXCEPTION_STOPPING}.
The receiver will no longer be running but some resources might not have been cleaned up properly.If set to <code>true</code>, each message is checked for presence in the messageLog. If already present, it is not processed again. Only required for non XA compatible messaging. Requires messageLog! Default: false(Only used when <code>checkForDuplicates=true</code>) Indicates whether the messageid or the correlationid is used for checking presence in the message log Default: MESSAGEIDThe maximum delivery count after which to stop processing the message (only for listeners that know the delivery count of received messages). If -1 the delivery count is ignored Default: 5The number of times a processing attempt is automatically retried after an exception is caught or rollback is experienced. If <code>maxRetries < 0</code> the number of attempts is infinite Default: 1Size of the cache to keep process results, used by maxRetries Default: 100XPath expression to extract correlationid from messageNamespace defintions for correlationIDXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitionsStylesheet to extract correlationID from messageXPath expression to extract label from messageNamespace defintions for labelXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitionsStylesheet to extract label from messageIf set (>=0) and the character data length inside a xml element exceeds this size, the character data is chomped (with a clear comment)If set, the character data in this XML element is stored inside a session key and in the message it is replaced by a reference to this session key: {sessionKey: + <code>elementToMoveSessionKey</code> + }(Only used when <code>elementToMove</code> or <code>elementToMoveChain</code> is set) Name of the session key wherein the character data is stored Default: ref_ + the name of the elementLike <code>elementToMove</code> but element is preceded with all ancestor elements and separated by semicolons (e.g. adapter;pipeline;pipe)Regular expression to mask strings in the errorStore/logStore and logfiles. Every character between to the strings in this expression will be replaced by a '*'. For example, the regular expression (?<=<party>).*?(?=</party>) will replace every character between keys <party> and </party>Only used when hideRegex is not empty Default: allComma separated list of keys of session variables which are available when the <code>PipelineSession</code> is created and of which the value will not be shown in the log (replaced by asterisks)If set to <code>true</code>, every message read will be processed as if it is being retried, by setting a session variable to retry. Default: falseNumber of connection attempts to put the adapter in warning status Default: 5Placeholder class to allow legacy configuration notations <code><param type='number' /></code> in the new Frank!Config XSD.
<p>
The attribute <code>type</code> has been removed in favor of explicit ParameterTypes such as: <code>NumberParameter</code>, <code>DateParameter</code> and <code>BooleanParameter</code>.
Using the new elements enables the use of auto-completion for the specified type.The target data type of the parameter, related to the database or XSLT stylesheet to which the parameter is applied. Default: STRINGName of the parameterURL to a stylesheet that wil be applied to the contents of the message or the value of the session-variable.the XPath expression to extract the parameter value from the (xml formatted) input or session-variable.If set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan). <code>0</code> will auto-detect Default: 0Namespace definitions for xpathExpression. Must be in the form of a comma or space separated list of
<code>prefix=namespaceuri</code>-definitions. One entry can be without a prefix, that will define the default namespace.When set <code>true</code> namespaces (and prefixes) in the input message are removed before the stylesheet/xpathExpression is executed Default: <code>false</code>Alias used to obtain username and password, used when a <code>pattern</code> containing {username} or {password} is specifiedDefault username that is used when a <code>pattern</code> containing {username} is specifiedDefault password that is used when a <code>pattern</code> containing {password} is specifiedRequired in each Adapter to transform incoming messages. A pipeline
is a sequence of pipes. A
pipeline also defines its allowed end states using the <code><Exits></code>
tag.
<br/><br/>
The pipes in a PipeLine may not be executed in sequential order, see PipeForward.
<br/><br/>
A pipeline gathers statistics about the messages it processes.
<br/><br/>
In the AppConstants there may be a property named <code>log.logIntermediaryResults</code> (true/false)
which indicates whether the intermediary results (between calling pipes) have to be logged.
<br/><br/>
<b>Transaction control</b><br/><br/>
THE FOLLOWING TO BE UPDATED, attribute 'transacted' replaced by 'transactionAttribute'
If transacted is set to <code>true</code>, messages will be processed
under transaction control. Processing by XA-compliant pipes (i.e. Pipes that implement the
IXAEnabled-interface, set their transacted-attribute to <code>true</code> and use XA-compliant
resources) will then either be committed or rolled back in one transaction.
If transacted is set to <code>true</code>, either an existing transaction
(started by a transactional receiver) is joined, or new one is created (if the message processing request
is not initiated by a receiver under transaction control.
Messages are only committed or rolled back by the Pipeline if it started the transaction itself. If
the pipeline joined an existing transaction, the commit or rollback is left to the object that started
the transaction, i.e. the receiver. In the latter case the pipeline can indicate to the receiver that the
transaction should be rolled back (by calling UserTransaction.setRollBackOnly()).
The choice whether to either commit (by Pipeline or Receiver) or rollback (by Pipeline or Receiver)
is made as follows:
If the processing of the message concluded without exceptions and the status of the transaction is
STATUS_ACTIVE (i.e. normal) the transaction will be committed. Otherwise it will be rolled back,
or marked for roll back by the calling party.Name of the first pipe to execute when a message is to be processed Default: first pipe of the pipelineMaximum number of threads that may execute this Pipeline simultaneously, use 0 to disable limit Default: 0If set <code>true</code> the original message without namespaces (and prefixes) is stored under the session key originalMessageWithoutNamespaces Default: falseIf messageSizeWarn>=0 and the size of the input or result pipe message exceeds the value specified a warning message is logged. You can specify the value with the suffixes <code>KB</code>, <code>MB</code> or <code>GB</code> Default: application default (30MB)when specified and <code>null</code> is received as a message the message is changed to the specified valueAppears inside a pipe and defines what pipe or exit to execute next. When the
execution of a pipe is done, the pipe looks up the next pipe or exit to execute.
This pipe or exit is searched based on a key that describes what happened during
pipe execution. For example a FixedResultPipe searches for key
<code>filenotfound</code> if it tried to read a file that did not exist,
preventing it from producing the desired output message. If there was
no error, the FixedResultPipe searches for key <code>success</code>.
<br/><br/>
Each <code><Forward></code> tag is used to link a search key (<code>name</code> attribute)
to a pipe or exit to execute next (<code>path</code> attribute). The forward's <code>path</code>
attribute references the target pipe or exit by its <code>name</code> attribute, see
AbstractPipe and PipeLineExit. For most pipes and most keys, the next
pipe is executed if no forward is found. By default, the pipes in a pipeline are executed consecutively.the <code>name</code> is a symbolic reference to a <code>path</code>.<br/>The name of the next Pipe or Exit. When the Pipeline doesn't have an Exits element configured it will be
initialized with one Exit having name READY and state SUCCESSLocker of scheduler jobs and pipes.
Tries to set a lock (by inserting a record in the database table IbisLock) and only if this is done
successfully the job is executed.
For an Oracle database the following objects are used:
<pre>
CREATE TABLE <schema_owner>.IBISLOCK
(
OBJECTID VARCHAR2(100 CHAR),
TYPE CHAR(1 CHAR),
HOST VARCHAR2(100 CHAR),
CREATIONDATE TIMESTAMP(6),
EXPIRYDATE TIMESTAMP(6)
CONSTRAINT PK_IBISLOCK PRIMARY KEY (OBJECTID)
);
CREATE INDEX <schema_owner>.IX_IBISLOCK ON <schema_owner>.IBISLOCK
(EXPIRYDATE);
GRANT DELETE, INSERT, SELECT, UPDATE ON <schema_owner>.IBISLOCK TO <rolename>;
GRANT SELECT ON SYS.DBA_PENDING_TRANSACTIONS TO <rolename>;
COMMIT;
</pre>Identifier for this lockType for this lock: P(ermanent) or T(emporary). A temporary lock is released after the job has completed Default: TFormat for date which is added after <code>objectid</code> (e.g. yyyyMMdd to be sure the job is executed only once a day)The time (for type=P in days and for type=T in hours) to keep the record in the database before making it eligible for deletion by a cleanup process Default: 30 days (type=P), 4 hours (type=T)The number of times an attempt should be made to acquire a lock, after this many times an exception is thrown when no lock could be acquired, when -1 the number of retries is unlimited Default: 0The time in ms to wait before the first attempt to acquire a lock is made Default: 0The time in ms to wait before another attempt to acquire a lock is made Default: 10000If > 0: The time in s to wait before the INSERT statement to obtain the lock is canceled. N.B. On Oracle hitting this lockWaitTimeout may cause the error: (SQLRecoverableException) SQLState [08003], errorCode [17008] connection closed Default: 0If set <code>true</code> and the IBISLOCK table does not exist in the database, the process continues as if the lock was obtainedThe <code>transactionAttribute</code> declares transactional behavior of execution. It applies both to database transactions and XA transactions.
The pipeline uses this to start a new transaction or suspend the current one when required.
For developers: it is equal to <a href=\"https://docs.oracle.com/javaee/7/tutorial/transactions003.htm\">EJB transaction attribute</a>.
Possible values for transactionAttribute:
<table border=\"1\">
<tr><th>transactionAttribute</th><th>callers Transaction</th><th>Pipeline excecuted in Transaction</th></tr>
<tr><td colspan=\"1\" rowspan=\"2\">Required</td> <td>none</td><td>T2</td></tr>
<tr><td>T1</td> <td>T1</td></tr>
<tr><td colspan=\"1\" rowspan=\"2\">RequiresNew</td> <td>none</td><td>T2</td></tr>
<tr><td>T1</td> <td>T2</td></tr>
<tr><td colspan=\"1\" rowspan=\"2\">Mandatory</td> <td>none</td><td>error</td></tr>
<tr><td>T1</td> <td>T1</td></tr>
<tr><td colspan=\"1\" rowspan=\"2\">NotSupported</td><td>none</td><td>none</td></tr>
<tr><td>T1</td> <td>none</td></tr>
<tr><td colspan=\"1\" rowspan=\"2\">Supports</td> <td>none</td><td>none</td></tr>
<tr><td>T1</td> <td>T1</td></tr>
<tr><td colspan=\"1\" rowspan=\"2\">Never</td> <td>none</td><td>none</td></tr>
<tr><td>T1</td> <td>error</td></tr>
</table> Default: SupportsTimeout (in seconds) of transaction started to process a message. Default: <code>0</code> (use system default)Authentication alias used to authenticate when connecting to databaseUser name for authentication when connecting to database, when none found from <code>authAlias</code>Password for authentication when connecting to database, when none found from <code>authAlias</code>controls the use of transactionsName of the sender or the listenerPipeline exit container in which all (required) Exits must be defined.
Multiple exits may be provided each with their unique name.
<br/><br/>
If no exits are specified, a default one is created with name="READY" and state="SUCCESS".
<br/><br/>
<b>example:</b> <code><pre>
<Exits>
<Exit name="READY" state="SUCCESS" />
<Exit name="Created" state="ERROR" code="201" empty="true" />
<Exit name="NotModified" state="ERROR" code="304" empty="true" />
<Exit name="BadRequest" state="ERROR" code="400" empty="true" />
<Exit name="NotAuthorized" state="ERROR" code="401" empty="true" />
<Exit name="NotAllowed" state="ERROR" code="403" empty="true" />
<Exit name="Teapot" state="SUCCESS" code="418" />
<Exit name="ServerError" state="ERROR" code="500" />
</Exits>
</pre></code>The Exit of a Pipeline that specifies the end state of a PipeLine. The state is returned to the receiver as well as
the optionally specified http status code. Each Exit should have a unique name. See Exits
for examples.
<br/><br/>
When a Pipeline doesn't have an Exits element configured it will be initialized with one Exit having name READY and
state SUCCESS.
<br/><br/>
The name of an Exit can be referenced by the <code>path</code> attribute of a Forward within a Pipe.The name of the Exit that can be referenced by a PipeForward's <code>path</code> attribute. When a Pipeline doesn't have an Exits
element configured it will be initialized with one Exit having name READY (and state SUCCESS)The state of the Pipeline that is returned to the Receiver for this Exit. When a Pipeline doesn't have an Exits
element configured it will be initialized with one Exit having state SUCCESS (and name READY)HTTP statusCode e.g. <code>500</code> Default: 200Configures the responseRoot in the OpenAPI schema for this exit. If not set, the responseRoot value of the validator will be used. If that contains multiple (comma separated) values, the first will be used for the exits with state <code>SUCCESS</code>, the last for the other exits.If using RestListener and set to <code>true</code>, this removes the output and shows a blank page, the output is still logged in the ladybug testtool Default: <code>false</code>If set to <code>true</code>, the output will not be wrapped by the OutputWrapper. Default: <code>false</code>If set to <code>true</code>, the output will not be validated or transformed by the validator. Default: <code>false</code>Optional element in a pipeline. Global forwards that will be added to every pipe, when the forward name has not been explicitly set.
For example the <code><forward name="exception" path="error_exception" /></code>, which will add the '<code>exception</code>' forward to every pipe in the pipeline.Container for jobs that are scheduled for periodic execution.Cleans up a directory.directory to be cleaned upMinimum amount of time (with suffix 'd', 'h', 'm' or 's') that must have passed before a file will be deleted.
You may only use one suffix! Default: 30dwhen <code>true</code>, files in subdirectories will be deleted, too Default: falsewhen <code>true</code>, empty subdirectories will be deleted, too Default: falsewhen set <code>true</code>, send warnings to logging and console about not existing directories Default: trueSingleton that has the different jmsRealms.<br/>
Typical use: JmsRealmFactory.getInstance().<method to execute>
<br/>A JmsRealm is a definition of a JMS provider, and is kind of a utility
class to prevent the tedeous work of repeatedly defining all parameters
to connect to a queue or topic.
<br/>
This class is not an extension of JNDIBase, which would be logical, because
in the JMSBase class the function PropertyUtils.copyProperties is used, which cannot
handle this.Includes another realm into this oneSet the name of this realm<br/>Set the name of the QueueConnectionFactory<br/>Set the name of the TopicConnectionFactory<br/>Manager for Monitoring.<p>Example configuration:</p>
<pre><code>
{@literal
<monitor name="Receiver Shutdown" destinations="MONITOR_LOG">
<trigger className="org.frankframework.monitoring.Alarm" severity="WARNING">
<event>Receiver Shutdown</event>
</trigger>
<trigger className="org.frankframework.monitoring.Clearing" severity="WARNING">
<event>Receiver Shutdown</event>
</trigger>
</monitor>
}
</code></pre>The functional name of the object.Filter on Adapters, used by Triggers.Set the name of the Adapter that this AdapterFilter filters on.Name of the parameterURL to a stylesheet that wil be applied to the contents of the message or the value of the session-variable.the XPath expression to extract the parameter value from the (xml formatted) input or session-variable.If set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan). <code>0</code> will auto-detect Default: 0Namespace definitions for xpathExpression. Must be in the form of a comma or space separated list of
<code>prefix=namespaceuri</code>-definitions. One entry can be without a prefix, that will define the default namespace.When set <code>true</code> namespaces (and prefixes) in the input message are removed before the stylesheet/xpathExpression is executed Default: <code>false</code>Alias used to obtain username and password, used when a <code>pattern</code> containing {username} or {password} is specifiedDefault username that is used when a <code>pattern</code> containing {username} is specifiedDefault password that is used when a <code>pattern</code> containing {password} is specifiedUsed in combination with types <code>DATE</code>, <code>TIME</code>, <code>DATETIME</code> and <code>TIMESTAMP</code> to parse the raw parameter string data into an object of the respective type Default: depends on typeSeparate the integer part from the fractional part of a number. Default: system defaultIn the United States, the comma is typically used for the grouping separator; however, several publication standards follow international standards in using either a space or a thin space character. Default: system defaultUsed in combination with type <code>number</code>; if set and the value of the parameter exceeds this maximum value, this maximum value is takenUsed in combination with type <code>number</code>; if set and the value of the parameter falls short of this minimum value, this minimum value is takenListener that allows a Receiver to receive messages as a REST webservice.
Prepends the configured URI pattern with <code>api/</code>. The structure of REST messages is described
by OpenAPI specifications. The Frank!Framework generates an OpenAPI specification for each ApiListener and
for all ApiListeners in all configurations combined. You can
find them in the Frank!Console under main menu item Webservices, heading Available ApiListeners.
<p>
The generated OpenAPI specifications have <code>servers</code> and <code>paths</code> objects and
therefore they document the full URLs of the provided services.
<p>
It is possible to automatically generate eTags over the listener result. This can be controlled by globally
setting the property <code>api.etag.enabled</code> or by setting the attribute <code>updateEtag="true"</code>.
When enabled the listener will respond to the <code>If-Match</code>, <code>If-None-Match</code> headers and may return status code 304.
<p>
In order to enable eTags for multiple nodes you must configure Memcached to store the eTags.
The following properties will need to be set:
<ul>
<li><code>etag.cache.server=ip or hostname:port</code></li>
<li><code>etag.cache.type=memcached</code></li>
</ul>
In case authentication, is required the following application properties can be used:
<ul>
<li><code>etag.cache.username</code></li>
<li><code>etag.cache.password</code></li>
<li><code>etag.cache.authalias</code></li>
</ul>ESB (Enterprise Service Bus) extension of JmsListener.Microsoft Exchange Implementation of a MailListener.FxF extension of EsbJmsListener.
<p><b>Configuration </b><i>(where deviating from EsbJmsListener)</i><b>:</b>
<table border="1">
<tr><th>attributes</th><th>description</th><th>default</th></tr>
<tr><td>destinationName</td><td>name of the JMS destination (queue or topic) to use</td><td>"jms/FileTransferAction"</td></tr>
<tr><td>jmsRealm</td><td> </td><td>"qcf_tibco_p2p_ff"</td></tr>
<tr><td>messageProtocol</td><td>protocol of ESB service to be called. Possible values
<ul>
<li>"FF": Fire & Forget protocol</li>
<li>"RR": Request-Reply protocol</li>
</ul></td><td>"FF"</td></tr>
</table></p>Use this listener to receive messages from other adapters or a scheduler within the same Frank-application or from other components residing in the same JVM.
JavaListeners can receive calls made via de ibis-servicedispatcher, which should be located on the JVM classpath to receive calls from other components in the JVM. If you want to call an adapter in the same Frank-application, consider using the IbisLocalSender.
<br/>
To understand what this listener does exactly, please remember that the Frank!Framework is a Java application.
The JavaListener listens to Java method calls. You can issue Java method calls using a IbisJavaSender (external call)
or IbisLocalSender (internal call).
For more information see the ibis-servicedispatcher project.JdbcListener base class.Database Listener that operates on a table having at least a key and a status field.A true multi-threaded Listener-class.
<br/>
Since version 4.1, Ibis supports distributed transactions using the XA-protocol. This feature is controlled by the
transacted attribute. If this is set to <code>true</code>, received messages are
committed or rolled back, possibly together with other actions, by the receiver or the pipeline.
In case of a failure, all actions within the transaction are rolled back.
<p><b>Using jmsTransacted and acknowledgement</b><br/>
If jmsTransacted is set <code>true</code>: it should ensure that a message is received and processed on a both or nothing basis.
IBIS will commit the the message, otherwise perform rollback. However using jmsTransacted, IBIS does not bring transactions within
the adapters under transaction control, compromising the idea of atomic transactions. In the roll-back situation messages sent to
other destinations within the Pipeline are NOT rolled back if jmsTransacted is set <code>true</code>! In the failure situation the
message is therefore completely processed, and the roll back does not mean that the processing is rolled back! To obtain the correct
(transactional) behaviour, transacted should be used instead of listener.transacted.
</p><p>
Setting listener.acknowledgeMode to "auto" means that messages are allways acknowledged (removed from
the queue, regardless of what the status of the Adapter is. "client" means that the message will only be removed from the queue
when the state of the Adapter equals the success state for committing.
The "dups" mode instructs the session to lazily acknowledge the delivery of the messages. This is likely to result in the
delivery of duplicate messages if JMS fails. It should be used by consumers who are tolerant in processing duplicate messages.
In cases where the client is tolerant of duplicate messages, some enhancement in performance can be achieved using this mode,
since a session has lower overhead in trying to prevent duplicate messages.
</p>
<p>The setting for listener.acknowledgeMode will only be processed if
the setting for listener.transacted as well as for
listener.jmsTransacted is false.</p>
<p>If useReplyTo is set and a replyTo-destination is
specified in the message, the JmsListener sends the result of the processing
in the pipeline to this destination. Otherwise the result is sent using the (optionally)
specified, that in turn sends the message to
whatever it is configured to.</p>
<p>You can add parameters to the JmsListener, the values will be added as Headers to the JMS response message.</p>
<p><b>Notice:</b> the JmsListener is ONLY capable of processing
jakarta.jms.TextMessages and jakarta.jms.BytesMessage<br/><br/>
</p>Read messages from the IBISSTORE database table previously stored by a
MessageStoreSender.
Example configuration:
<code><pre>
<Receiver
name="03 MessageStoreReceiver"
numThreads="4"
transactionAttribute="Required"
pollInterval="1"
>
<MessageStoreListener
name="03 MessageStoreListener"
slotId="${instance.name}/TestMessageStore"
statusValueInProcess="I"
/>
</Receiver>
</pre></code>
If you have a <code>MessageStoreListener</code>, failed messages are automatically kept in database
table IBISSTORE. Messages are also kept after successful processing. The state of a message
is distinguished by the <code>TYPE</code> field, as follows:
<ul>
<li> <code>M</code>: The message is new. From a functional perspective, it is in the message store.
<li> <code>E</code>: There was an error processing the message. From a functional perspective, it is in the error store.
<li> <code>A</code>: The message was successfully processed. From a functional perspective, it is in the message log.
</ul>
Another way to say this is that a <code>MessageStoreListener</code> acts as a message log and as an error store.
If you have it, you do not need to add
a <code>JdbcErrorStorage</code> or <code>JdbcMessageLog</code> within the same receiver.
<br/><br/>
See /IAF_util/IAF_DatabaseChangelog.xml for the structure of table IBISSTORE.MQTT listener which will connect to a broker and subscribe to a topic.
Links to <a href="https://www.eclipse.org/paho/files/javadoc" target="_blank">https://www.eclipse.org/paho/files/javadoc</a> are opened in a new window/tab because the response from eclipse.org contains header X-Frame-Options:SAMEORIGIN which will make the browser refuse to open the link inside this frame.A true multi-threaded Listener-class.
<br/>
Since version 4.1, Ibis supports distributed transactions using the XA-protocol. This feature is controlled by the
transacted attribute. If this is set to <code>true</code>, received messages are
committed or rolled back, possibly together with other actions, by the receiver or the pipeline.
In case of a failure, all actions within the transaction are rolled back.
<p><b>Using jmsTransacted and acknowledgement</b><br/>
If jmsTransacted is set <code>true</code>: it should ensure that a message is received and processed on a both or nothing basis.
IBIS will commit the the message, otherwise perform rollback. However using jmsTransacted, IBIS does not bring transactions within
the adapters under transaction control, compromising the idea of atomic transactions. In the roll-back situation messages sent to
other destinations within the Pipeline are NOT rolled back if jmsTransacted is set <code>true</code>! In the failure situation the
message is therefore completely processed, and the roll back does not mean that the processing is rolled back! To obtain the correct
(transactional) behaviour, transacted should be used instead of listener.transacted.
<p>
Setting listener.acknowledgeMode to "auto" means that messages are allways acknowledged (removed from
the queue, regardless of what the status of the Adapter is. "client" means that the message will only be removed from the queue
when the state of the Adapter equals the success state.
The "dups" mode instructs the session to lazily acknowledge the delivery of the messages. This is likely to result in the
delivery of duplicate messages if JMS fails. It should be used by consumers who are tolerant in processing duplicate messages.
In cases where the client is tolerant of duplicate messages, some enhancement in performance can be achieved using this mode,
since a session has lower overhead in trying to prevent duplicate messages.
</p>
<p>The setting for listener.acknowledgeMode will only be processed if
the setting for listener.transacted as well as for
listener.jmsTransacted is false.</p>
<p>If useReplyTo is set and a replyTo-destination is
specified in the message, the JmsListener sends the result of the processing
in the pipeline to this destination. Otherwise the result is sent using the (optionally)
specified Sender, that in turn sends the message to
whatever it is configured to.</p>
</p>
<p><b>Notice:</b> the JmsListener is ONLY capable of processing
<code>jakarta.jms.TextMessage</code>s <br/><br/>
</p>JMSListener re-implemented as a pushing listener rather than a pulling listener.
The JMS messages have to come in from an external source: an MDB or a Spring
message container.
This version of the <code>JmsListener</code> supports distributed transactions using the XA-protocol.
No special action is required to have the listener join the transaction.
<p><b>Using jmsTransacted and acknowledgement</b><br/>
If jmsTransacted is set <code>true</code>, it should ensure that a message is received and processed on
a both or nothing basis. IBIS will commit the the message, otherwise perform rollback. However, using
jmsTransacted, IBIS does not bring transactions within the adapters under transaction control,
compromising the idea of atomic transactions. In the roll-back situation messages sent to other
destinations within the Pipeline are NOT rolled back if jmsTransacted is set <code>true</code>! In
the failure situation the message is therefore completely processed, and the roll back does not mean
that the processing is rolled back! To obtain the correct (transactional) behaviour, set
<code>transacted</code>="true" for the enclosing Receiver. Do not use jmsTransacted for any new situation.
</p><p>
Setting listener.acknowledgeMode to "auto" means that messages are allways acknowledged (removed from
the queue, regardless of what the status of the Adapter is. "client" means that the message will only be removed from the queue
when the state of the Adapter equals the success state.
The "dups" mode instructs the session to lazily acknowledge the delivery of the messages. This is likely to result in the
delivery of duplicate messages if JMS fails. It should be used by consumers who are tolerant in processing duplicate messages.
In cases where the client is tolerant of duplicate messages, some enhancement in performance can be achieved using this mode,
since a session has lower overhead in trying to prevent duplicate messages.
</p>
<p>The setting for listener.acknowledgeMode will only be processed if
the setting for listener.transacted as well as for
listener.jmsTransacted is false.</p>
<p>If useReplyTo is set and a replyTo-destination is
specified in the message, the JmsListener sends the result of the processing
in the pipeline to this destination. Otherwise the result is sent using the (optionally)
specified Sender, that in turn sends the message to
whatever it is configured to.</p>
<p><b>Notice:</b> the JmsListener is ONLY capable of processing
jakarta.jms.TextMessages and jakarta.jms.BytesMessage<br/><br/>
</p>Listener that allows a Receiver to receive messages as a REST webservice.
Prepends the configured URI pattern with <code>rest/</code>. When you are writing a new Frank config, you are recommended
to use an ApiListener instead. You can find all serviced URI patterns
in the Frank!Console: main menu item Webservice, heading Available REST Services.
<p>
Note:
Servlets' multipart configuration expects a Content-Type of <code>multipart/form-data</code> (see http://docs.oracle.com/javaee/6/api/javax/servlet/annotation/MultipartConfig.html).
So do not use other multipart content types like <code>multipart/related</code>
</p>Database Listener that returns a count of messages available, but does not perform any locking or
other management of processing messages in parallel.Listener that allows a Receiver to receive messages as a SOAP webservice.
The structure of the SOAP messages is expressed in a WSDL (Web Services Description Language) document.
The Frank!Framework generates a WSDL document for each adapter that contains WebServiceListeners. You can
find these documents in the Frank!Console under main menu item Webservices, heading Available WSDL's.
The WSDL documents that we generate document how the SOAP services can be accessed. In particular, the
URL of a SOAP service can be found in an XML element <code><soap:address></code> with
<code>soap</code> pointing to namespace <code>http://schemas.xmlsoap.org/wsdl/soap/</code>.
<br/>If <code>address</code> is set, then for each request:<ul>
<li>MIME headers are described in a 'mimeHeaders'-XML stored under session key 'mimeHeaders'</li>
<li>Attachments present in the request are described by an 'attachments'-XML stored under session key 'attachments'</li>
<li>SOAP protocol is stored under a session key 'soapProtocol'</li>
<li>SOAP action is stored under a session key 'SOAPAction'</li>
</ul>
and for each response a multipart message is constructed if a 'multipart'-XML is provided in sessionKey specified by multipartXmlSessionKey.HTTP method to listen to Default: GETHTTP method(s) to listen to. Inside XML Configurations: for multiple values, use a comma as separator. Default: GETURI pattern to register this listener on, eq. <code>/my-listener/{something}/here</code>The required contentType on requests, if it doesn't match a <code>415 Unsupported Media Type</code> is replied. Default: ANYThe specified contentType on response. When <code>ANY</code> the response will determine the content-type when it's known and will never calculate it. If no match is found <code>*/*</code> will be used.
When <code>DETECT</code> the framework attempts to detect the MimeType (as well as charset) when not known. Default: ANYThe specified character encoding on the response contentType header. NULL or empty
values will be ignored. Default: UTF-8Automatically generate and validate etags Default: <code>false</code>, can be changed by setting the property <code>api.etag.enabled</code>.Enables security for this listener. If you wish to use the application servers authorization roles [AUTHROLE], you need to enable them globally for all ApiListeners with the <code>servlet.ApiListenerServlet.securityRoles=IbisTester,IbisWebService</code> property Default: <code>NONE</code>Only active when AuthenticationMethod=AUTHROLE. Comma separated list of authorization roles which are granted for this service, eq. <code>IbisTester,IbisObserver</code>Specify the form-part you wish to enter the pipeline Default: name of the first form-partName of the header which contains the Message-Id. Default: Message-IdName of the header which contains the Correlation-Id. Default: Correlation-IdUnique string used to identify the operation. The id MUST be unique among all operations described in the OpenApi schema.Comma separated list of parameters passed as http header. Parameters will be stored in 'headers' sessionkey.Session key that provides the <code>Content-Disposition</code> header in the responseIssuer to validate JWTKeysource URL to validate JWTHeader to extract JWT from Default: <code>Authorization</code>Comma separated list of required claimsComma separated key value pairs to exactly match with JWT payload. e.g. <code>sub=UnitTest, aud=test</code>Comma separated key value pairs to one-of match with JWT payload. e.g. <code>appid=a,appid=b</code>Claim name which specifies the role (maps to <code>IsUserInRolePipe</code>)Claim name which specifies the principal name (maps to <code>GetPrincipalPipe</code>)Name of the listener as known to the adapterOptional base folder, that serves as root for all other foldersName of the listenerDetermines the contents of the message that is sent to the pipeline. Can be 'name', for the filename, 'path', for the full file path, 'contents' for the contents of the file, 'info' for file information. For any other value, the attributes of the file are searched and used Default: pathCharset to be used for extracting the contentsOutputFormat of message for messageType=info Default: XMLprotocol of ESB service to be calledif true, all JMS properties in the request starting with "ae_" are copied to the reply. Default: falseif messageProtocol=RR, default value is: true Default: falseif messageProtocol=FF, default value is: false Default: trueComma separated list of all XPath keys that need to be logged. (overrides <code>msg.log.keys</code> property)Receive timeout <i>in milliseconds</i> as specified by the JMS API, see https://docs.oracle.com/javaee/7/api/javax/jms/MessageConsumer.html#receive-long- Default: 1000If <code>true</code>, messages sent are put in a SOAP envelope Default: falseControls whether messages are send under transaction control.
If set <code>true</code>, messages are committed or rolled back under control of an XA-transaction. Default: falseAlias used to obtain credentials for authentication to JMS serverBy default, the JmsListener takes the Correlation-ID (if present) as the ID that has to be used as Correlation-ID of the reply.
When set to <code>true</code>, the messageID is used as Correlation-ID of the reply. Default: falseReceive timeout <i>in milliseconds</i> as specified by the JMS API, see https://docs.oracle.com/javaee/7/api/javax/jms/MessageConsumer.html#receive-long- Default: 1000Flag if reply-to queue from the request message should be used or not. Default: trueIf <code>true</code>, messages sent are put in a SOAP envelope Default: falseName of the JMS destination (queue or topic) to useControls whether messages are send under transaction control.
If set <code>true</code>, messages are committed or rolled back under control of an XA-transaction. Default: falseAlias used to obtain credentials for authentication to JMS serverloads JNDI (and other) properties from a JmsRealmName of the sender or the listenerName of the JMS destination (queue or topic) to useInterval <i>in milliseconds</i> for the poll guard to check whether a successful poll was done by the receive
(https://docs.oracle.com/javaee/7/api/javax/jms/messageconsumer.html#receive-long-) since last check. If polling has stopped this will be logged
and the listener will be stopped and started in an attempt to workaround problems with polling.
Polling might stop due to bugs in the JMS driver/implementation which should be fixed by the supplier. As the poll time includes reading
and processing of the message no successful poll might be registered since the last check when message processing takes a long time, hence
while messages are being processed the check on last successful poll will be skipped. Set to -1 to disable. Default: ten times the specified timeoutControls whether messages are send under transaction control.
If set <code>true</code>, messages are committed or rolled back under control of an XA-transaction. Default: falseAlias used to obtain credentials for authentication to JMS serverThe mail address of the mailbox connected to (also used for auto discovery)Url of the Exchange server. Set to e.g. https://outlook.office365.com/EWS/Exchange.asmx to speed up startup, leave empty to use autodiscoveryClient ID that represents a registered application in Azure AD which could be found at Azure AD -> App Registrations -> MyApp -> Overview.Client secret that belongs to registered application in Azure AD which could be found at Azure AD -> App Registrations -> MyApp -> Certificates and SecretsTenant ID that represents the tenant in which the registered application exists within Azure AD which could be found at Azure AD -> App Registrations -> MyApp -> Overview.Alias used to obtain client ID and secret or username and password for authentication to Exchange mail server.
If the attribute tenantId is empty, the deprecated Basic Authentication method is used.
If the attribute tenantId is not empty, the username and password are treated as the client ID and secret.Folder (subfolder of root or of inbox) to look for mails. If empty, the inbox folder is usedIf empty, all mails are retrieved. If set to <code>NDR</code> only Non-Delivery Report mails ('bounces') are retrievedComma separated list of fields to try as response address Default: replyTo,from,sender,Return-Pathproxy hostproxy port Default: 8080proxy usernameproxy passwordproxy authAliasproxy domainSeparator character used when working with multiple mailboxes, specified before the separator in the object name <code>[email protected]|My sub folder</code> or <code>[email protected]|AAMkADljZDMxYzIzLTFlMjYtNGY4Mi1hM2Y1LTc2MjE5ZjIyZmMyNABGAAAAAAAu/9EmV5M6QokBRZwID1Q6BwDXQXY+F44hRbDfTB9v8jRfAAAEUqUVAADXQXY+F44hRbDfTB9v8jRfAAKA4F+pAAA=</code>.
Please consider when moving emails across mailboxes that there will be a null value returned instead of the newly created identifier. Default: |Resource url to keystore or certificate. If none specified, the JVMs default keystore will be used.Type of keystore Default: pkcs12Authentication alias used to obtain keystore passwordDefault password to access keystoreKey manager algorithm. Can be left empty to use the servers default algorithmAlias to obtain specific certificate or key in keystoreAuthentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code>Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code>Resource url to truststore. If none specified, the JVMs default truststore will be used.Type of truststore Default: jksAuthentication alias used to obtain truststore passwordDefault password to access truststoreTrust manager algorithm. Can be left empty to use the servers default algorithmIf <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peerIf <code>true</code>, self signed certificates are accepted Default: falseIf <code>true</code>, CertificateExpiredExceptions are ignored Default: falseDetermines the contents of the message that is sent to the Pipeline. can be one of:
<ul>
<li><code>email</code>, for an XML containing most relevant information, except the body and the attachments</li>
<li><code>contents</code>, for the body of the message</li>
<li><code>mime</code>, for the MIME contents of the message</li>
<li><code>name</code> or <code>path</code>, for an internal handle of mail message, that can be used by a related MailFileSystemSender</li>
<li>the key of any header present in the message context</li>
</ul> Default: emailName of the listenerCharset to be used for extracting the contentsOutputFormat of message for messageType=info Default: XMLpathname of the file or directory to list. Default: Home folder of the ftp userName or ip address of remote hostPort number of remote host Default: 21Name of the alias to obtain credentials to authenticatie on remote serverName of the user to authenticatie on remote serverPassword to authenticatie on remote serverProxy hostnameProxy port Default: 1080FTP protocol to use Default: FTPIf <code>true</code>, passive ftp is used: before data is sent, a pasv command is issued, and the connection is set up by the server Default: true(ftps) Transport type in case of sftp Default: SOCKS5(ftps) Resource url to keystore or certificate to be used for authentication. If none specified, the JVMs default keystore will be used.(ftps) Type of keystore Default: pkcs12(ftps) Authentication alias used to obtain keystore password(ftps) Default password to access keystore(ftps) Alias to obtain specific certificate or key in keystore(ftps) Authentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code>(ftps) Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code>(ftps) Key manager algorithm. Can be left empty to use the servers default algorithm(ftps) Resource url to truststore to be used for authenticating peer. If none specified, the JVMs default truststore will be used.(ftps) Type of truststore Default: jks(ftps) Authentication alias used to obtain truststore password(ftps) Default password to access truststore(ftps) Trust manager algorithm. Can be left empty to use the servers default algorithm(ftps) If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer(ftps) If <code>true</code>, self signed certificates are accepted Default: false(ftps) If <code>true</code>, CertificateExpiredExceptions are ignored Default: falseSets the <code>Data Channel Protection Level</code>. Default: Cname of the session key to store the name of the received file in Default: fxfFileIf set to <code>true</code>, the received file is moved after being processed Default: true(only used when <code>moveProcessedFile=true</code>) <b>sibling</b> directory (related to the parent directory of the file to process) where files are stored after being processed Default: processed(only used when <code>moveProcessedFile=true</code>) when set to <code>true</code>, the directory to move processed files in is created if it does not exist Default: falseThe hostname of the IMAP serverThe port of the IMAP server Default: 993Alias used to obtain accessToken or username and password for authentication to Exchange mail server.
If the alias refers to a combination of a username and a password, the deprecated Basic Authentication method is used.
If the alias refers to a password without a username, the password is treated as the accessToken.Username for authentication to mail server.Password for authentication to mail server.Folder (subfolder of root or of inbox) to look for mails. If empty, the inbox folder is usedComma separated list of fields to try as response address Default: replyTo,from,sender,Return-PathInternal name of the listener, as known to the adapter. An IbisLocalSender refers to this name in its <code>javaListener</code>-attribute.External Name of the listener. An IbisJavaSender refers to this name in its <code>serviceName</code>-attribute.Comma separated list of keys of session variables that should be returned to caller, for correct results as well as for erroneous results.
If not set (not even to an empty value), all session keys can be returned. Default: all session keys can be returnedShould the JavaListener throw a ListenerException when it occurs or return an error message Default: trueIf <code>true</code>, the WSDL of the service provided by this listener will available for download Default: falsePrimary key field of the table, used to identify and differentiate messages.
<b>NB: there should be an index on this field!</b>Field containing the message data Default: <i>same as keyField</i>Type of the field containing the message data Default: <i>String</i>Field containing the <code>messageId</code>.
<b>NB: If this column is not set the default (primary key) keyField will be used as messageId!</b> Default: <i>same as keyField</i>Field containing the <code>correlationId</code>.
<b>NB: If this column is not set, the <code>messageId</code> and <code>correlationId</code> will be the same!</b> Default: <i>same as messageIdField</i>If set, the SQL dialect in which the queries are written and should be translated from to the actual SQL dialectControls whether BLOB is considered stored compressed in the database Default: trueControls automatically whether blobdata is stored compressed and/or serialized in the database. N.B. When set true, then the BLOB will be converted into a string Default: falseAuthentication alias used to authenticate when connecting to databaseUser name for authentication when connecting to database, when none found from <code>authAlias</code>Password for authentication when connecting to database, when none found from <code>authAlias</code>controls the use of transactionsName of the sender or the listenerName of the table to be usedField containing the status of the message.
<b>NB: For optimal performance, an index should exist that starts with this field, followed by all fields that are used with a fixed value in the select condition, and end with the <code>orderField</code>.(optional) Field used to store the date and time of the last change of the <code>statusField</code>(optional) Field used to store the reason of the last change of the <code>statusField</code>(optional) Value of <code>statusField</code> indicating row is available to be processed. If not specified, any row not having any of the other status values is considered available.Value of <code>statusField</code> indicating the processing of the row resulted in an errorValue of status field indicating row is processed OKValue of <code>statusField</code> indicating is being processed. Can be left emtpy if database has <code>SKIP LOCKED</code> functionality and the <code>transactionAttribute</code> of the <code>Receiver</code> can be (and is) set to <code>Required</code> or <code>RequiresNew</code>.Value of <code>statusField</code> indicating message is on Hold, temporarilyIdentifier for this serviceComma separated list of sessionKey's to be read together with the message. Please note: corresponding MessageStoreSender must have the same value for this attributeName of the table to be used Default: IBISSTOREPrimary key field of the table, used to identify and differentiate messages.
<b>NB: there should be an index on this field!</b> Default: MESSAGEKEYField containing the message data Default: MESSAGEField containing the <code>messageId</code>.
<b>NB: If this column is not set the default (primary key) keyField will be used as messageId!</b> Default: MESSAGEIDField containing the <code>correlationId</code>.
<b>NB: If this column is not set, the <code>messageId</code> and <code>correlationId</code> will be the same!</b> Default: CORRELATIONIDType of the field containing the message data Default: BLOBControls automatically whether blobdata is stored compressed and/or serialized in the database. N.B. When set true, then the BLOB will be converted into a string Default: <code>true</code>Field containing the status of the message.
<b>NB: For optimal performance, an index should exist that starts with this field, followed by all fields that are used with a fixed value in the select condition, and end with the <code>orderField</code>. Default: TYPE(optional) Field used to store the date and time of the last change of the <code>statusField</code> Default: MESSAGEDATE(optional) Field used to store the reason of the last change of the <code>statusField</code> Default: COMMENTSValue of statusField indicating row is available to be processed. If set empty, any row not having any of the other status values is considered available. Default: <code>M</code>Value of status field indicating is being processed. Set to <code>I</code> if database has no SKIP LOCKED functionality, the Receiver cannot be set to <code>Required</code> or <code>RequiresNew</code>, or to support programmatic retry.Value of <code>statusField</code> indicating the processing of the row resulted in an error Default: <code>E</code>Value of status field indicating row is processed OK Default: <code>A</code>Value of status field indicating message is on Hold, temporarily. If required, suggested value is <code>H</code>.Move to messageLog after processing, as the message is already stored in the ibisstore only some fields need to be updated. When set <code>false</code>, messages are deleted after being processed Default: <code>true</code>If set, the SQL dialect in which the queries are written and should be translated from to the actual SQL dialectControls whether BLOB is considered stored compressed in the database Default: trueThe functional name of the object.see <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttClient.html#MqttClient-java.lang.String-java.lang.String-org.eclipse.paho.client.mqttv3.MqttClientPersistence-" target="_blank">MqttClient(java.lang.String serverURI, java.lang.String clientId, MqttClientPersistence persistence)</a>see <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttClient.html#MqttClient-java.lang.String-java.lang.String-org.eclipse.paho.client.mqttv3.MqttClientPersistence-" target="_blank">MqttClient(java.lang.String serverURI, java.lang.String clientId, MqttClientPersistence persistence)</a>see <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttClient.html#subscribe-java.lang.String-" target="_blank">MqttClient.subscribe(java.lang.String topicFilter)</a>see <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttClient.html#MqttClient-java.lang.String-java.lang.String-org.eclipse.paho.client.mqttv3.MqttClientPersistence-" target="_blank">MqttClient(java.lang.String serverURI, java.lang.String clientId, MqttClientPersistence persistence)</a> Default: 2see <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttConnectOptions.html#setCleanSession-boolean-" target="_blank">MqttConnectOptions.setCleanSession(boolean cleanSession)</a> Default: truesee <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/persist/MqttDefaultFilePersistence.html" target="_blank">MqttDefaultFilePersistence</a> and <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttClient.html" target="_blank">MqttClient</a>see <a href="https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttConnectOptions.html#setAutomaticReconnect-boolean-" target="_blank">MqttConnectOptions.setAutomaticReconnect(boolean automaticReconnect)</a> (apart from this recover job will also try to recover) Default: truecharacter encoding of received messages Default: UTF-8Uri pattern to match, the {uri} part in https://mydomain.com/ibis4something/rest/{uri}, where mydomain.com and ibis4something refer to 'your ibis'.Method (e.g. GET or POST) to matchKey of session variable to store etagKey of Session variable that determines requested content type, overrides producesCan be either <code>/rest</code> or <code>/rest-public</code> and must correspond with the available RestListenerServlet path(s).Comma separated list of authorization roles which are granted for this rest service Default: IbisAdmin,IbisDataAdmin,IbisTester,IbisObserver,IbisWebServiceIndicates whether the parts of a multipart entity should be retrieved and put in session keys. This can only be done once! Default: trueMediatype (e.g. XML, JSON, TEXT) the RestServiceDispatcher receives as input Default: XMLMediatype (e.g. XML, JSON, TEXT) the RestServiceDispatcher sends as output, if set to json the ibis will automatically try to convert the xml message Default: XMLIf set to true the ibis will automatically validate and process etags Default: falseIf set to true the ibis will automatically create an etag Default: falseUses an JsonPipe to convert the json-input to xml, and xml-output to json.
Use with caution, a properly configured Input/Output-wrapper can do much more and is more robust! Default: trueHostname of the SMB share.Port to connect to. Default: 445Type of the authentication either 'NTLM' or 'SPNEGO'.
When setting SPNEGO, the host must use the FQDN, and must be registered on the KDC with a valid SPN. Default: SPNEGOalias used to obtain credentials for the smb sharethe smb share usernamethe smb share passwordNTLM only: logon/authentication domain, in case the user account is bound to a domain such as Active Directory.May not contain '\\' characters. The destination share, aka smb://xxx/yyy share.SPNEGO only:
Key Distribution Center, typically hosted on a domain controller.
Stored in <code>java.security.krb5.kdc</code>SPNEGO only:
Kerberos Realm, case sensitive. Typically upper case and the same as the domain name.
An Active Directory domain acts as a Kerberos Realm.
Stored in <code>java.security.krb5.realm</code>Name of the SapSystem used by this objectName of the RFC-destination to be registered in the SAP systemThe number of connections that should be registered at the gateway Default: 2Name of the Ibis-objectName of the Ibis-objectName of the SapSystem used by this objectPath of the file or directory to start working. Default: Home folder of the sftp userName or ip address of remote hostPort number of remote host Default: 21Name of the alias to obtain credentials to authenticatie on remote serverName of the user to authenticatie on remote serverPassword to authenticatie on remote serverProxy hostnameProxy port Default: 1080alias to obtain credentials to authenticate on proxyDefault user name in case proxy requires authenticationDefault password in case proxy requires authenticationTransport type in case of sftp Default: SOCKS5Optional preferred encryption from client to server for sftp protocolOptional preferred encryption from server to client for sftp protocolPath to private key file for sftp authenticationName of the alias to obtain credentials for passphrase of private key filePassphrase of private key filePath to file with knownhostsVerify the hosts againt the knownhosts file. Default: truecount query that returns the number of available records. when there are available records the pipeline is activatedIf <code>true</code> the SOAP envelope is removed from received messages and a SOAP envelope is added to returned messages (SOAP envelope will not be visible to the pipeline) Default: trueNamespace of the service that is provided by the adapter of this listener.
If specified, requests posted to https://mydomain.com/ibis4something/servlet/rpcrouter that have this namespace in their body will be handled by this listener,
where mydomain.com and ibis4something refer to 'your ibis'.The address to listen to, e.g the part <address> in https://mydomain.com/ibis4something/services/<address>,
where mydomain.com and ibis4something refer to 'your ibis'.If set, MTOM is enabled on the SOAP bindingComma separated list of session keys to hold contents of attachments of the requestKey of session variable that holds the description (name, sessionKey, mimeType) of the parts present in the request. Only used if attachmentSessionKeys are specified Default: multipartXmlGeneral Cache provider.
N.B. the default values shown can be overridden using properties in appConstants. The property names are found by prefixing the attribute name with <code>cache.default.</code>.The maximum number of elements in memory, before they are evicted Default: 100Either <code>LRU</code>=Least Recent Use,<code>LFU</code>=Least Frequent Use or <code>FIFO</code>=First In - First Out Default: LRUIf <code>true</code>, the elements in the cache are eternal, i.e. never expire Default: falseThe amount of time <i>in seconds</i> to live for an element from its creation date Default: 36000The amount of time <i>in seconds</i> to live for an element from its last accessed or modified date Default: 36000If <code>true</code>, the elements that are evicted from memory are spooled to disk Default: falseThe maximum number of elements on disk, before they are removed Default: 10000If <code>true</code>, the cache is stored on disk and survives configuration reloads & JVM restarts. Default: falseHow often to run the disk store expiry thread Default: 600name of the cache, will be lowercased Default: <code><ownerName></code>_cachexpath expression to extract cache key from request messageoutput type of xpath expression to extract cache key from request message Default: textnamespace defintions for keyxpath. must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitionsstylesheet to extract cache key from request message. Use in combination with cacheEmptyKeys to inhibit caching for certain groups of request messagessession key to use as input for transformation of request message to key by keyxpath or keystylesheetcontrols whether empty keys are used for caching. when set true, cache entries with empty keys can exist. Default: falsexpath expression to extract value to be cached key from response message. Use in combination with cacheEmptyValues to inhibit caching for certain groups of response messagesnamespace defintions for valuexpath. must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitionsstylesheet to extract value to be cached from response messagesession key to use as input for transformation of response message to cached value by valuexpath or valuestylesheetcontrols whether empty values will be cached. when set true, empty cache entries can exist for any key. Default: falseDomparser om AFM-XML berichten om te zetten in edifactberichten (voor de backoffice).Sender to work with the Amazon S3 Filesystem.
<p>
In addition to regular parameters for filesystem senders, it is possible
to set custom user-metadata on S3 files by prefixing parameter names with
FileAttribute..
This prefix will be not be part of the actual metadata property name.
</p>
<p>
The string value of these parameters will be used as value of the custom metadata attribute.
</p>Sender to obtain information from and write to a CMIS application.
<p>
When <code>action</code>=<code>get</code> the input (xml string) indicates the id of the document to get. This input is mandatory.
</p>
<p>
<b>Example:</b>
<pre><code>
<cmis>
<id>documentId</id>
</cmis>
</code></pre>
</p>
<p>
When <code>action</code>=<code>delete</code> the input (xml string) indicates the id of the document to get. This input is mandatory.
</p>
<p>
<b>Example:</b>
<pre><code>
<cmis>
<id>documentId</id>
</cmis>
</code></pre>
</p>
<p>
When <code>action</code>=<code>create</code> the input (xml string) indicates document properties to set. This input is optional.
</p>
<p>
<b>Example:</b>
<pre><code>
<cmis>
<name>Offerte</name>
<objectTypeId>NNB_Geldlening</objectTypeId>
<mediaType>application/pdf</mediaType>
<properties>
<property name="ArrivedAt" type="datetime" formatString="yyyy-MM-dd'T'HH:mm:ss.SSSz">2014-11-27T16:43:01.268+0100</property>
<property name="ArrivedBy">HDN</property>
<property name="DocumentType">Geldlening</property>
</properties>
</cmis>
</code></pre>
</p>
<p>
<table border="1">
<tr><th>attributes</th><th>description</th><th>default</th></tr>
<tr><td>name</td><td>mandatory property "cmis:name". If not set the sender attribute fileNameSessionKey is used</td><td>"[unknown]"</td></tr>
<tr><td>objectTypeId</td><td>mandatory property "cmis:objectTypeId"</td><td>"cmis:document"</td></tr>
<tr><td>mediaType</td><td>the MIME type of the document to store</td><td>"application/octet-stream"</td></tr>
<tr><td>property</td><td>custom document property to set. Possible attributes:
<table border="1">
<tr><th>name</th><th>description</th><th>default</th></tr>
<tr><td>type</td><td>
<ul>
<li><code>string</code>: renders the value</li>
<li><code>datetime</code>: converts the value to a Date, by default using formatString <code>yyyy-MM-dd HH:mm:ss</code></li>
</ul>
</td><td>string</td></tr>
<tr><td>formatString</td><td>used in combination with <code>datetime</code></td><td>yyyy-MM-dd HH:mm:ss</td></tr>
</table></td><td> </td></tr>
</table>
</p>
<p>
When <code>action</code>=<code>find</code> the input (xml string) indicates the query to perform.
</p>
<p>
<b>Example:</b>
<pre><code>
<query>
<statement>select * from cmis:document</statement>
<maxItems>10</maxItems>
<skipCount>0</skipCount>
<searchAllVersions>true</searchAllVersions>
<includeAllowableActions>true</includeAllowableActions>
</query>
</code></pre>
</p>
<p>
When <code>action</code>=<code>update</code> the input (xml string) indicates document properties to update.
</p>
<p>
<b>Example:</b>
<pre><code>
<cmis>
<id>123456789</id>
<properties>
<property name="ArrivedAt" type="datetime" formatString="yyyy-MM-dd'T'HH:mm:ss.SSSz">2014-11-27T16:43:01.268+0100</property>
<property name="ArrivedBy">HDN</property>
<property name="DocumentType">Geldlening</property>
</properties>
</cmis>
</code></pre>
</p>
<p>
<table border="1">
<tr><th>attributes</th><th>description</th><th>default</th></tr>
<tr><td>id</td><td>mandatory property "cmis:objectId" which indicates the document to update</td><td> </td></tr>
<tr><td>property</td><td>custom document property to update. See <code>action</code>=<code>create</code> for possible attributes</td><td> </td></tr>
</table>
</p>Sender that executes either its input or a fixed line, with all parametervalues appended, as a command.Sender that sleeps for a specified time, which defaults to 5000 msecs.
Useful for testing purposes.QuerySender that interprets the input message as a query, possibly with attributes.
Messages are expected to contain sql-text.Echos input to output.ESB (Enterprise Service Bus) extension of JmsSender.Implementation of a FileSystemSender that enables to manipulate messages in an Exchange folder.FileSystem Sender extension to handle Attachments.QuerySender that assumes a fixed query, possibly with attributes.
<p><b>NOTE:</b> See DB2XMLWriter for ResultSet!</p>FixedResultSender, same behaviour as FixedResultPipe, but now as a ISender.Sender for the HTTP protocol using HttpMethod. By default, any response code outside the 2xx or 3xx range
is considered an error and the <code>exception</code> forward of the SenderPipe is followed if present and if there
is no forward for the specific HTTP status code. Forwards for specific HTTP codes (e.g. "200", "201", ...)
are returned by this sender, so they are available to the SenderPipe.
<p><b>Expected message format:</b></p>
<p>GET methods expect a message looking like this:
<pre>
param_name=param_value&another_param_name=another_param_value
</pre>
<p>POST AND PUT methods expect a message similar as GET, or looking like this:
<pre>
param_name=param_value
another_param_name=another_param_value
</pre>
Note:
When used as MTOM sender and MTOM receiver doesn't support Content-Transfer-Encoding "base64", messages without line feeds will give an error.
This can be fixed by setting the Content-Transfer-Encoding in the MTOM sender.
</p>JMS sender which will add an IMS header to the message and call the MQ specific logic.
<p>See JmsSender for configuration</p>Posts a message to another IBIS-adapter or application in the same JVM using IbisServiceDispatcher.
An IbisJavaSender makes a call to a Receiver with a JavaListener
or any other application in the same JVM that has registered a <code>RequestProcessor</code> with the IbisServiceDispatcher.
<h4>configuring IbisJavaSender and JavaListener</h4>
<ul>
<li>Define a SenderPipe with an IbisJavaSender</li>
<li>Set the attribute <code>serviceName</code> to <i>yourExternalServiceName</i></li>
</ul>
In the Adapter to be called:
<ul>
<li>Define a Receiver with a JavaListener</li>
<li>Set the attribute <code>serviceName</code> to <i>yourExternalServiceName</i></li>
</ul>
N.B. Please make sure that the IbisServiceDispatcher-1.4.jar or newer is present on the class path of the server.Posts a message to another IBIS-adapter in the same IBIS instance. If the callee exits with an <<code>exit</code>>
that has state PipeLine.ExitState#ERROR, an error is considered to happen
in the caller which means that the <code>exception</code> forward is followed if it is present.
<p/>
<p/>
Returns exit.code as forward name to SenderPipe provided that exit.code can be parsed as integer.
For example, if the called adapter has an exit state with code
<code>2</code>, then the SenderPipe supports a forward with name <code>2</code>
that is followed when the called adapter exits with the mentioned exit. This does not work if the code is for example <code>c2</code>.
<p/>
<p/>
An IbisLocalSender makes a call to a Receiver with either a WebServiceListener
or a JavaListener.
<h3>Configuration of the Adapter to be called</h3>
A call to another Adapter in the same IBIS instance is preferably made using the combination
of an IbisLocalSender and a JavaListener. If,
however, a Receiver with a WebServiceListener is already present, that can be used in some cases, too.
<h4>configuring IbisLocalSender and JavaListener</h4>
<ul>
<li>Define a SenderPipe with an IbisLocalSender</li>
<li>Set the attribute <code>javaListener</code> to <i>yourServiceName</i></li>
<li>Do not set the attribute <code>serviceName</code></li>
</ul>
In the Adapter to be called:
<ul>
<li>Define a Receiver with a JavaListener</li>
<li>Set the attribute <code>name</code> to <i>yourServiceName</i></li>
<li>Do not set the attribute <code>serviceName</code>, except if the service is to be called also
from applications other than this IBIS-instance</li>
</ul>
<h4>configuring IbisLocalSender and WebServiceListener</h4>
<ul>
<li>Define a SenderPipe with an IbisLocalSender</li>
<li>Set the attribute <code>serviceName</code> to <i>yourIbisWebServiceName</i></li>
<li>Do not set the attribute <code>javaListener</code></li>
</ul>
In the Adapter to be called:
<ul>
<li>Define a Receiver with a WebServiceListener</li>
<li>Set the attribute <code>name</code> to <i>yourIbisWebServiceName</i></li>
</ul>Requires the net.bankid.merchant.library V1.2.9Sender used to run JavaScript code using `JavascriptEngine` implementations.
<p>
This sender can execute a function of a given Javascript file, the result of the function will be the output of the sender.
The parameters of the Javascript function to run are given as parameters by the adapter configuration
The sender doesn't accept nor uses the given input, instead for each argument for the #jsFunctionName method,
you will need to create a parameter on the sender.
</p>
<p>
The result of the Javascript function should be of type String, or directly convertible to String from a primitive type
or an array of primitive types / strings, as the output of the sender will be of type String.
</p>
<p>
Failure to ensure the output is a string may mean the result will look like {@code [Object object]}.
</p>This class sends messages with JMS.Perform an XSLT transformation with a specified stylesheet on a JSON input, yielding JSON, yielding JSON, XML or text.
JSON input is transformed into XML map, array, string, integer and boolean elements, in the namespace http://www.w3.org/2013/XSL/json.
The XSLT stylesheet or XPathExpression operates on these element.Sender to obtain information from and write to an LDAP Directory.
Returns the set of attributes in an XML format. Examples are shown below.
<h2>example</h2>
Consider the following configuration example:
<code>
<pre>
<sender
className="org.frankframework.ldap.LdapSender"
ldapProviderURL="ldap://servername:389/o=ing"
operation="read"
attributesToReturn="givenName,sn,telephoneNumber" >
<param name="entryName" xpathExpression="entryName" />
</sender>
</pre>
</code>
<br/>
This may result in the following output:
<code><pre>
<ldap>
<entryName>uid=srp,ou=people</entryName>
<attributes>
<attribute attrID="givenName">
<value>Jan</value>
</attribute>
<attribute attrID="telephoneNumber">
<value>010 5131123</value>
<value>06 23456064</value>
</attribute>
<attribute attrID="sn">
<value>Jansen</value>
</attribute>
</attributes>
</ldap>
</pre></code> <br/>
Search or Read?
Read retrieves all the attributes of the specified entry.
Search retrieves all the entries of the specified (by entryName) context that have the specified attributes,
together with the attributes. If the specified attributes are null or empty all the attributes of all the entries within the
specified context are returned.
Sample result of a <code>read</code> operation:<br/><code><pre>
<attributes>
<attribute>
<attribute name="employeeType" value="Extern"/>
<attribute name="roomNumber" value="DP 2.13.025"/>
<attribute name="departmentCode" value="358000"/>
<attribute name="organizationalHierarchy">
<item value="ou=ING-EUR,ou=Group,ou=Organization,o=ing"/>
<item value="ou=OPS&IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/>
<item value="ou=000001,ou=OPS&IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/>
</attribute>
<attribute name="givenName" value="Gerrit"/>
</attributes>
</pre></code> <br/>
Sample result of a <code>search</code> operation:<br/><code><pre>
<entries>
<entry name="uid=srp">
<attributes>
<attribute>
<attribute name="employeeType" value="Extern"/>
<attribute name="roomNumber" value="DP 2.13.025"/>
<attribute name="departmentCode" value="358000"/>
<attribute name="organizationalHierarchy">
<item value="ou=ING-EUR,ou=Group,ou=Organization,o=ing"/>
<item value="ou=OPS&IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/>
<item value="ou=000001,ou=OPS&IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/>
</attribute>
<attribute name="givenName" value="Gerrit"/>
</attributes>
</entry>
<entry> .... </entry>
.....
</entries>
</pre></code> <br/>Sender to work with the server local filesystem.
<p>
In addition to regular parameters for filesystem senders, it is possible
to set custom extended attributes on files by prefixing parameter names with
FileAttribute..
This prefix will be not be part of the actual metadata property name.
</p>
<p>
The string value of these parameters will be used as value of the custom metadata attribute.
</p>Sender that just logs its message.JMS sender which will call IBM WebSphere MQ specific
setTargetClient(JMSC.MQJMS_CLIENT_NONJMS_MQ) on the destination prior to
sending a message. This is needed when the MQ destination is not a JMS
receiver otherwise format errors occur (e.g. dots are added after every
character in the message).
<p>See JmsSender for configuration</p>sender that sends a mail specified by an XML message.
<p>
Sample email.xml:
<code><pre>
<email>
<recipients>
<recipient type="to">***@hotmail.com</recipient>
<recipient type="cc">***@gmail.com</recipient>
</recipients>
<from name="*** ***">***@yahoo.com</from>
<subject>This is the subject</subject>
<threadTopic>subject</threadTopic>
<message>This is the message</message>
<messageType>text/plain</messageType><!-- Optional -->
<messageBase64>false</messageBase64><!-- Optional -->
<charset>UTF-8</charset><!-- Optional -->
<attachments>
<attachment name="filename1.txt">This is the first attachment</attachment>
<attachment name="filename2.pdf" base64="true">JVBERi0xLjQKCjIgMCBvYmoKPDwvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1...vSW5mbyA5IDAgUgo+PgpzdGFydHhyZWYKMzQxNDY2CiUlRU9GCg==</attachment>
<attachment name="filename3.pdf" url="file:/c:/filename3.pdf"/>
<attachment name="filename4.pdf" sessionKey="fileContent"/>
</attachments><!-- Optional -->
</email>
</pre></code>
</p><p>
Notice: the XML message must be valid XML. Therefore, especially the message element
must be plain text or be wrapped as CDATA. Example:
<code><pre>
<message><![CDATA[<h1>This is a HtmlMessage</h1>]]></message>
</pre></code>
</p><p>
The <code>sessionKey</code> attribute for attachment can contain an inputstream or a string. Other types are not supported at this moment.
</p><p>
The attribute order for attachments is as follows:
<ol>
<li>sessionKey</li>
<li>url</li>
<li><i>value of the attachment element</i></li>
</ol>
</p><p>
The <code>base64</code> attribute is only used when the value of the PipeLineSession variable <code>sessionKey</code> is a String object
or when the value of the attachment element is used. If <code>base64=true</code> then the value will be decoded before it's used.
</p><p>
<b>Compilation and Deployment Note:</b> mail.jar (v1.2) and activation.jar must appear BEFORE j2ee.jar.
Otherwise errors like the following might occur: <code>NoClassDefFoundException: com/sun/mail/util/MailDateFormat</code>
</p>Send messages to the IBISSTORE database table to have them processed exactly-once by another
adapter which will read the messages using a MessageStoreListener.
This other adapter will process the messages asynchronously and (optionally)
under transaction control. Duplicate messages are ignored based on the
messageId (except when onlyStoreWhenMessageIdUnique is set to false), hence
the sender of the message can retry sending the message until a valid reply
is received in which case it can be certain that the message is stored in the
database table IBISSTORE.
<br/><br/>
If you have a <code>MessageStoreSender</code> it does not make sense to add a <code>JdbcMessageLog</code>
or <code>JdbcErrorStorage</code> in the same sender pipe. A <code>MessageStoreSender</code>
acts as a message log and an error store. It can be useful however to add a message log or error store
to the adapter around the sender pipe, because errors may occur before the message reaches the sender pipe.
<br/><br/>
Example configuration:
<code><pre>
<SenderPipe name="Send">
<MessageStoreSender
slotId="${instance.name}/TestMessageStore"
onlyStoreWhenMessageIdUnique="false"
/>
</SenderPipe>
</pre></code>Sender to perform action on a MongoDB database.MQTT listener which will connect to a broker and subscribe to a topic.
Links to <a href="https://www.eclipse.org/paho/files/javadoc" target="_blank">https://www.eclipse.org/paho/files/javadoc</a> are opened in a new window/tab because the response from eclipse.org contains header X-Frame-Options:SAMEORIGIN which will make the browser refuse to open the link inside this frame.Sender for Akamai NetStorage (HTTP based).
<p>See HttpSenderBase for more arguments and parameters!</p>
<p><b>AuthAlias:</b></p>
<p>If you do not want to specify the nonce and the accesstoken used to authenticate with Akamai, you can use the authalias property. The username represents the nonce and the password the accesstoken.</p>Collection of Senders, that are executed all at the same time.Wrapper for senders, that opens the wrapped sender at runtime before each sender action, and closes it afterwards.
This prevents (long) open connections inside Senders and possible connection failures.
<b>Example:</b>
<pre><code>
<SenderPipe>
<ReconnectSenderWrapper>
<EchoSender myAttribute="myValue" />
</ReconnectSenderWrapper>
</SenderPipe>
</code></pre>
</p>Performs a reload on database configuration.
<p>It is possible to set the name of the configuration with the parameter 'name'.</p>
<p>You can dynamically set 'forceReload' attribute with the parameter 'forceReload'.</p>QuerySender that writes each row in a ResultSet to a file.Uses the (old) SMB 1 protocol.
<br/>
Only supports NTLM authentication.Uses the (newer) SMB 2 and 3 protocol.
Possible error codes:
<br/>
Pre-authentication information was invalid (24) or Identifier doesn't match expected value (906): login information is incorrect
Server not found in Kerberos database (7): Verify that the hostname is the FQDN and the server is using a valid SPN.Registers a trigger in the scheduler so that the message is send to a javalistener
at a scheduled time.Sender that sends a mail via SendGrid v3 (cloud-based SMTP provider).
Sample XML file can be found in the path: iaf-core/src/test/resources/emailSamplesXML/emailSample.xmlSeries of Senders, that are executed one after another.Wrapper for senders, that allows to get input from a session variable, and to store output in a session variable.Collection of Senders, that are executed all at the same time. Once the results are processed, all results will be sent to the resultSender,
while the original sender will return its result to the pipeline.
<p>Multiple sub-senders can be configured within the ShadowSender, the minimum amount of senders is 2 (originalSender + resultSender)</p>StoredProcedureQuerySender is used to send stored procedure queries and retrieve the result.
<p>
<h3>QueryType settings and OUTPUT parameters</h3>
The StoredProcedureQuerySender class has the following features:
<ul>
<li>It supports setting the output parameters of the stored procedure by setting 'mode' attribute of
the corresponding 'Param' to 'OUTPUT' or 'INOUT'.</li>
<li>The queryType can only be 'SELECT' or 'OTHER'.</li>
<li>Use queryType 'SELECT' when the stored procedure only returns a set of rows, and you need
the output to be the format as FixedQuerySender (see DB2XMLWriter).</li>
<li>Use queryType 'OTHER' if the stored procedure has one or more output parameters. With this query type,
the stored procedure can return a result-set along with returning some values in output parameters.
Depending on the database, the stored procedure can even returning multiple result sets or a combination
of result sets as return values, and result sets as REF_CURSOR OUT parameters. </li>
</ul>
</p>
<p>
All stored procedure parameters that are not fixed, so specified in the query with a {@code ?}, should
have a corresponding IParameter entry. Output parameters should have {@code mode="OUTPUT"}, or
{@code mode="INOUT"} depending on how the stored procedure is defined.
</p>
<p>
<h3>Sample Output for queryType=OTHER</h3>
<h4>Basic Example with Only Simple Output Parameters</h4>
<code><pre>
<resultset>
<result param="r1" type="STRING">MESSAGE-CONTENTS</result>
<result param="r2" type="STRING">E</result>
</resultset>
</pre></code>
<h4>Example with Resultset and Simple Output Parameters</h4>
<code><pre>
<resultset>
<result resultNr="1">
<fielddefinition>
<field name="FIELDNAME"
type="columnType"
columnDisplaySize=""
precision=""
scale=""
isCurrency=""
columnTypeName=""
columnClassName=""/>
<field ...../>
</fielddefinition>
<rowset>
<row number="0">
<field name="TKEY">MSG-ID</field>
<field name="TCHAR">E</field>
<field name="TMESSAGE">MESSAGE-CONTENTS</field>
<field name="TCLOB" null="true"/>
<field name="TBLOB" null="true"/>
</row>
<row number="1" ...../>
</rowset>
</result>
<result param="count" type="INTEGER">5</result>
</resultset>
</pre></code>
<h4>Example with Simple and Cursor Output Parameters</h4>
<code><pre>
<resultset>
<result param="count" type="INTEGER">5</result>
<result param="cursor1" type="LIST">
<fielddefinition>
<field name="FIELDNAME"
type="columnType"
columnDisplaySize=""
precision=""
scale=""
isCurrency=""
columnTypeName=""
columnClassName=""/>
<field ...../>
</fielddefinition>
<rowset>
<row number="0">
<field name="TKEY">MSG-ID</field>
<field name="TCHAR">E</field>
<field name="TMESSAGE">MESSAGE-CONTENTS</field>
<field name="TCLOB" null="true"/>
<field name="TBLOB" null="true"/>
</row>
<row number="1" ..... />
</rowset>
</result>
</resultset>
</pre></code>
</p>
<p><em>NOTE:</em> Support for stored procedures is currently experimental and changes in the currently produced output-format
are expected.</p>Sender that sends a message via a WebService.XCom client voor het versturen van files via XCom.Sender for transferring files using the XFB protocol. Assumes sender input is local filename.
<br/>
Some comments from Richard Maddox (FTO) about UNIX File permissions:
<br/>
<br/>
In case of AIX or SUN systems we advise the following user and directory permissions:
<br/>
<br/>
SENDING CFT:
<br/>
- App_user must have secondary group: xfbgw
<br/>
- Folder should have ownership: app_user:xfbgw (owner:group)
<br/>
- Folder should have access rights: 770 (rwx.rwx.---) so nobody other then app_user and group xfbgw can do something in this folder
<br/>
- Folder should have SGID bit set so that all files what is copied to this folder get group ownership xfbgw
<br/>
- send file must have rights 660 after putting the file in the send directory.
<br/>
<br/>
RECEIVING CFT:
<br/>
- App_user (the application user of customer) should have secondary group: xfbgw
<br/>
- Folder should have ownership: app_user:xfbgw (owner:group)
<br/>
- Folder should have access rights: 770 (rwx.rwx.---) so nobody other then app_user and group xfbgw can do something in this folder
<br/>
- Folder should have SGID bit set, so that all files what is copied to this folder get group ownership xfbgw
<br/>
<br/>
There are of course more solutions to get the job done, but this is the solution we can guarantee.Sender for browsing and removing queue messages (with input and output in a XML message).
<p>
When input root element is <code>browse</code> all queue messages are returned.
</p>
<p>
When input root element is <code>remove</code> all queue messages are removed.
</p>
<p>
<b>example (input):</b>
<code>
<pre>
<browse>
<jmsRealm>qcf</jmsRealm>
<destinationName>jms/GetPolicyDetailsRequest</destinationName>
<destinationType>QUEUE</destinationType>
</browse>
</pre>
</code>
</p>
<p>
<b>example (browse output):</b>
<code>
<pre>
<result>
<items count="2">
<item>
<timestamp>Thu Nov 20 13:36:31 CET 2014</timestamp>
<messageId>ID:LPAB00000003980-61959-1416486781822-3:5:33:1:1</messageId>
<correlationId>...</correlationId>
<message><![CDATA[...]]></message>
</item>
<item>
<timestamp>Thu Dec 12 11:59:22 CET 2014</timestamp>
<messageId>ID:LPAB00000003980-58359-1721486799722-3:4:19:1:1</messageId>
<correlationId>...</correlationId>
<message><![CDATA[...]]></message>
</item>
</items>
</result>
</pre>
</code>
</p>
<p>
<b>example (remove output):</b>
<code>
<pre>
<result>
<itemsRemoved>2</itemsRemoved>
</result>
</pre>
</code>
</p>QuerySender that transforms the input message to a query.
<br/><code><pre>
select
delete
insert
update - tableName
- columns [0..1] - column [1..n] - name
- value [0..1]
- type [0..1] one of {string;function;number;datetime;blob;clob;xmldatetime}, string by default
- decimalSeparator [0..1] only applicable for type=number
- groupingSeparator [0..1] only applicable for type=number
- formatString [0..1] only applicable for type=datetime, yyyy-MM-dd HH:mm:ss.SSS by default
- where [0..1]
- order [0..1]
<br/>
alter - sequenceName
- startWith
<br/>
sql - type [0..1] one of {select;ddl;other}, other by default
- query
<br/>
</pre></code><br/>Sender that validates the input message against a XML Schema.
N.B. noNamespaceSchemaLocation may contain spaces, but not if the schema is stored in a .jar or .zip file on the class path.Perform an XSLT transformation with a specified stylesheet or XPath-expression.Sender that writes an entry to a ZipStream, similar to ZipWriterPipe with action='write'.
Filename and contents are taken from parameters. If one of the parameters is not present, the input message
is used for either filename or contents.The functional name of the object.Access key to access to the AWS resources owned by the accountSecret key to access to the AWS resources owned by the accountAlias used to obtain AWS credentialsSetting this flag will result in disabling chunked encoding for all requests. Default: falseSet whether the client should be configured with global bucket access enabled. Default: falseName of the region that the client will be created from Default: eu-west-1Name of the bucket to access. The bucketName can also be specified by prefixing it to the object name, separated from it by |Proxy hostProxy portThe S3 service endpoint, either with or without the protocol. (e.g. https://sns.us-west-1.amazonaws.com or sns.us-west-1.amazonaws.com)Maximum concurrent connections towards S3name of the senderIf parameter [action] is set, then the attribute action value will be overridden with the value of the parameter.Filename to operate on. If not set, the parameter filename is used. If that is not set either, the input is usedDestination for move, copy or rename. If not set, the parameter destination is used. If that is not set either, the input is usedFolder that is scanned for files when action=list. When not set, the root is scannedIf <code>true</code>: if a non-existing folder is part of the fileName, it will be created. Default: falseIf set <code>true</code>, for actions create, write, move, copy or rename, the destination file is overwritten if it already exists Default: falseFor action=append: If set to a positive number, the file is rotated each day, and this number of files is kept. The inputFolder must point to the directory where the file resides Default: 0For action=append: If set to a positive number, the file is rotated when it has reached the specified size, and the number of files specified in numberOfBackups is kept. Size is specified in plain bytes, suffixes like 'K', 'M' or 'G' are not recognized. The inputFolder must point to the directory where the file resides Default: 0For the actions write and append, with rotateSize>0: the number of backup files that is kept. The inputFolder must point to the directory where the file resides Default: 0Filter of files to look for in inputFolder e.g. '*.inp'. Works with actions move, copy, delete and listFilter of files to be excluded when looking in inputFolder. Works with actions move, copy, delete and listIf set to <code>true</code> then the folder and the content of the non empty folder will be deleted.If set to <code>true</code> then the system specific line separator will be appended to the file after executing the action. Works with actions write and append Default: falseCharset to be used for read and write actionIf set to true then the folder will be deleted if it is empty after processing the action. Works with actions delete, readDelete and moveOutputFormat Default: XMLFilter for action <code>list</code>. Specify <code>FILES_ONLY</code>, <code>FOLDERS_ONLY</code> or <code>FILES_AND_FOLDERS</code>. Default: FILES_ONLYSpecifies action to performThe maximum number of concurrent connections Default: 10READ_TIMEOUT timeout in MS.
Defaults to 10000, inherited from HttpSender#setTimeout. Default: 10000URL to connect toRepository IDAlias used to obtain credentials for authentication to hostUsername used in authentication to hostPassword used in authentication to hostBindingType CMIS protocol to useIf <code>action</code>=<code>create</code> the sessionKey that contains the file to use. If <code>action</code>=<code>get</code> and <code>getProperties</code>=<code>true</code> the sessionKey to store the result inIf <code>action</code>=<code>create</code> the session key that contains the name of the file to use. If not set, the value of the property <code>filename</code> from the input message is usedIf <code>action</code>=<code>create</code> the mime type used to store the document when it's not set in the input message by a property Default: 'application/octet-stream'(Only used when <code>action</code>=<code>get</code>). If true, the content of the document is put to <code>FileSessionKey</code> and all document properties are put in the result as a xml string Default: false(Only used when <code>action</code>=<code>get</code>). If true, the attachment for the document is the sender result or, if set, stored in <code>FileSessionKey</code>. If false, only the properties are returned Default: true(Only used when <code>action</code>=<code>create</code>). If true, the document is created in the root folder of the repository. Otherwise the document is created in the repository Default: trueIf true, the session is not closed at the end and it will be used in the next call Default: trueOverride entrypoint WSDL by reading it from the classpath, overrides url attributeResource url to keystore or certificate. If none specified, the JVMs default keystore will be used.Type of keystore Default: pkcs12Authentication alias used to obtain keystore passwordDefault password to access keystoreAlias to obtain specific certificate or key in keystoreAuthentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code>Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code>Key manager algorithm. Can be left empty to use the servers default algorithmResource url to truststore. If none specified, the JVMs default truststore will be used.Type of truststore Default: jksAuthentication alias used to obtain truststore passwordDefault password to access truststoreTrust manager algorithm. Can be left empty to use the servers default algorithmIf <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peerIf <code>true</code>, self signed certificates are accepted Default: falseIf <code>true</code>, CertificateExpiredExceptions are ignored Default: falseProxy host urlProxy host port Default: 80Alias used to obtain credentials for authentication to proxyProxy UsernameProxy PasswordThe command to be executed. Note: Executing a command in WAS requires <<ALL FILES>> execute permission to avoid that provide the absolute path of the command. Absolute path can be found with the following command 'which -a {commandName}'The number of seconds to execute a command. If the limit is exceeded, a TimeoutException is thrown. A value of 0 means execution time is not limited Default: 0In case the command that will be executed contains arguments then this flag should be set to true Default: falseThe time <i>in milliseconds</i> the thread will be put to sleep Default: 5000 [ms]The number of seconds the JDBC driver will wait for a statement object to execute. If the limit is exceeded, a TimeoutException is thrown. A value of 0 means execution time is not limited Default: 0Type of query to be executed Default: OTHERThe maximum number of rows to be returned from the output of <code>select</code> queries, -1 means unlimited rows Default: -1The number of the first row to be returned from the output of <code>select</code> queries. Rows before this are skipped from the output. Default: 1Comma separated list of columns whose values are to be returned. Works only if the driver implements jdbc 3.0 getGeneratedKeys().
Note: not all drivers support multiple values and returned field names may vary between drivers.
Works for H2 and Oracle. Could work for MS_SQL with a single identity column, with name GENERATED_KEYS, if a identity has been generated. Not supported for other DBMSes.If specified, the rowid of the processed row is put in the pipelinesession under the specified key (only applicable for <code>querytype=other</code>). <b>Note:</b> If multiple rows are processed a SqlException is thrown.If set, the SQL dialect in which the queries are written and should be translated from to the actual SQL dialectWhen set <code>true</code>, exclusive row-level locks are obtained on all the rows identified by the select statement (e.g. by appending ' FOR UPDATE NOWAIT SKIP LOCKED' to the end of the query) Default: falsewhen set and >=0, ' FOR UPDATE WAIT #' is used instead of ' FOR UPDATE NOWAIT SKIP LOCKED' Default: -1Only for querytype 'updateBlob': column that contains the BLOB to be updated Default: 1For querytype 'updateBlob': key of session variable that contains the data (String or InputStream) to be loaded to the BLOB. When empty, the input of the pipe, which then must be a String, is used.
For querytype 'select': key of session variable that contains the OutputStream, Writer or Filename to write the BLOB tocontrols whether blobdata is stored compressed in the database Default: truecontrols whether the streamed blobdata will need to be base64 <code>encode</code> or <code>decode</code> or not.Charset that is used to read and write BLOBs. This assumes the blob contains character data.
If blobCharset and blobSmartGet are not set, BLOBs are returned as bytes. Before version 7.6, blobs were base64 encoded after being read to accommodate for the fact that senders need to return a String. This is no longer the caseControls automatically whether blobdata is stored compressed and/or serialized in the database Default: falseOnly for querytype 'updateClob': column that contains the CLOB to be updated Default: 1For querytype 'updateClob': key of session variable that contains the CLOB (String or InputStream) to be loaded to the CLOB. When empty, the input of the pipe, which then must be a String, is used.
For querytype 'select': key of session variable that contains the OutputStream, Writer or Filename to write the CLOB toIf true, then select queries are executed in a way that avoids taking locks, e.g. with isolation mode 'read committed' instead of 'repeatable read'. Default: falseThe type of output. If not set then defaults to old-style XML. If set to XML, new-style XML is used. EXPERIMENTAL: datatypes like numbers are not yet rendered correctly Default: falsehack to allow to introduce a correlationid Default: trueprotocol of ESB service to be calledreceiver timeout, in milliseconds Default: 20000 (20s)if messageProtocol=<code>RR</code> then <code>deliveryMode</code> defaults to <code>NON_PERSISTENT</code> Default: not set by applicationif messageProtocol=<code>RR</code> then <code>replyTimeout</code> defaults to <code>timeout</code> Default: 5000if messageProtocol=<code>RR</code> then <code>synchronous</code> defaults to <code>true</code> Default: falseif messageProtocol=<code>RR</code> then if <code>soapAction</code> is empty then it is derived from the element MessageHeader/To/Location in the SOAP header of the input message (if $messagingLayer='P2P' then '$applicationFunction' else '$operationName_$operationVersion)If <code>true</code>, messages sent are put in a SOAP envelope Default: falseIf <code>true</code>, the sender operates in RR mode: A reply is expected, either on the queue specified in <code>replyToName</code>, or on a dynamically generated temporary queue Default: false(Only for <code>synchronous</code>=<code>true</code>). Maximum time in ms to wait for a reply. 0 means no timeout. Default: 5000Controls mode that messages are sent with Default: not set by applicationIf <code>true</code>, messages sent are put in a SOAP envelope Default: falseSOAPAction string sent as message propertyThe mail address of the mailbox connected to (also used for auto discovery)Url of the Exchange server. Set to e.g. https://outlook.office365.com/EWS/Exchange.asmx to speed up startup, leave empty to use autodiscoveryClient ID that represents a registered application in Azure AD which could be found at Azure AD -> App Registrations -> MyApp -> Overview.Client secret that belongs to registered application in Azure AD which could be found at Azure AD -> App Registrations -> MyApp -> Certificates and SecretsTenant ID that represents the tenant in which the registered application exists within Azure AD which could be found at Azure AD -> App Registrations -> MyApp -> Overview.Alias used to obtain client ID and secret or username and password for authentication to Exchange mail server.
If the attribute tenantId is empty, the deprecated Basic Authentication method is used.
If the attribute tenantId is not empty, the username and password are treated as the client ID and secret.Folder (subfolder of root or of inbox) to look for mails. If empty, the inbox folder is usedIf empty, all mails are retrieved. If set to <code>NDR</code> only Non-Delivery Report mails ('bounces') are retrievedComma separated list of fields to try as response address Default: replyTo,from,sender,Return-Pathproxy hostproxy port Default: 8080proxy usernameproxy passwordproxy authAliasproxy domainSeparator character used when working with multiple mailboxes, specified before the separator in the object name <code>[email protected]|My sub folder</code> or <code>[email protected]|AAMkADljZDMxYzIzLTFlMjYtNGY4Mi1hM2Y1LTc2MjE5ZjIyZmMyNABGAAAAAAAu/9EmV5M6QokBRZwID1Q6BwDXQXY+F44hRbDfTB9v8jRfAAAEUqUVAADXQXY+F44hRbDfTB9v8jRfAAKA4F+pAAA=</code>.
Please consider when moving emails across mailboxes that there will be a null value returned instead of the newly created identifier. Default: |Resource url to keystore or certificate. If none specified, the JVMs default keystore will be used.Type of keystore Default: pkcs12Authentication alias used to obtain keystore passwordDefault password to access keystoreKey manager algorithm. Can be left empty to use the servers default algorithmAlias to obtain specific certificate or key in keystoreAuthentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code>Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code>Resource url to truststore. If none specified, the JVMs default truststore will be used.Type of truststore Default: jksAuthentication alias used to obtain truststore passwordDefault password to access truststoreTrust manager algorithm. Can be left empty to use the servers default algorithmIf <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peerIf <code>true</code>, self signed certificates are accepted Default: falseIf <code>true</code>, CertificateExpiredExceptions are ignored Default: falseThe SQL query text to be executed each time sendMessage() is calledshould values between ${ and } be resolved from the pipelinesession Default: falseName of the file containing the result messagereturned messagepathname of the file or directory to list. Default: Home folder of the ftp userName or ip address of remote hostPort number of remote host Default: 21Name of the alias to obtain credentials to authenticatie on remote serverName of the user to authenticatie on remote serverPassword to authenticatie on remote serverProxy hostnameProxy port Default: 1080FTP protocol to use Default: FTPIf <code>true</code>, passive ftp is used: before data is sent, a pasv command is issued, and the connection is set up by the server Default: true(ftps) Transport type in case of sftp Default: SOCKS5(ftps) Resource url to keystore or certificate to be used for authentication. If none specified, the JVMs default keystore will be used.(ftps) Type of keystore Default: pkcs12(ftps) Authentication alias used to obtain keystore password(ftps) Default password to access keystore(ftps) Alias to obtain specific certificate or key in keystore(ftps) Authentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code>(ftps) Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code>(ftps) Key manager algorithm. Can be left empty to use the servers default algorithm(ftps) Resource url to truststore to be used for authenticating peer. If none specified, the JVMs default truststore will be used.(ftps) Type of truststore Default: jks(ftps) Authentication alias used to obtain truststore password(ftps) Default password to access truststore(ftps) Trust manager algorithm. Can be left empty to use the servers default algorithm(ftps) If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer(ftps) If <code>true</code>, self signed certificates are accepted Default: false(ftps) If <code>true</code>, CertificateExpiredExceptions are ignored Default: falseSets the <code>Data Channel Protection Level</code>. Default: CIf <code>methodType</code>=<code>POST</code>, <code>PUT</code> or <code>PATCH</code>, the type of post request Default: RAW(Only used when <code>methodType</code>=<code>POST</code> and <code>postType</code>=<code>URLENCODED</code>, <code>FORM-DATA</code> or <code>MTOM</code>) Prepends a new BodyPart using the specified name and uses the input of the Sender as contentIf set and <code>methodType</code>=<code>POST</code> and <code>paramsInUrl</code>=<code>false</code>, a multipart/form-data entity is created instead of a request body.
For each part element in the session key a part in the multipart entity is created. Part elements can contain the following attributes:
<ul>
<li>name: optional, used as 'filename' in Content-Disposition</li>
<li>sessionKey: mandatory, refers to contents of part</li>
<li>mimeType: optional MIME type</li>
</ul>
The name of the part is determined by the name attribute, unless that is empty, or the contents is binary. In those cases the sessionKey name is used as name of the part.Specifies whether messages will encoded, e.g. spaces will be replaced by '+' etc. Default: falseIf <code>true</code>, the input will be added to the URL for <code>methodType</code>=<code>GET</code>, or for <code>methodType</code>=<code>POST</code>, <code>PUT</code> or <code>PATCH</code> if <code>postType</code>=<code>RAW</code>. This used to be the default behaviour in framework version 7.7 and earlier Default: for methodType=<code>GET</code>: <code>false</code>,<br/>for methodTypes <code>POST</code>, <code>PUT</code>, <code>PATCH</code>: <code>true</code>(Only used when xHtml=<code>true</code>) stylesheet to apply to the HTML responseThe functional name of the object.Timeout in ms of obtaining a connection/result. Default: 10000Authentication alias used for authentication to the hostUsername used for authentication to the hostPassword used for authentication to the hostTimeout in ms of obtaining a connection/result. Default: 10000Authentication alias used for authentication to the hostUsername used for authentication to the hostPassword used for authentication to the hostThe transaction code that should be added in the header, must be 8 charactersServiceName of the JavaListener that should be called.Key of session variable to specify ServiceName of the JavaListener that should be called.Comma separated list of keys of session variables that will be returned to caller, for correct results as well as for erroneous results.
The set of available sessionKeys to be returned might be limited by the returnedSessionKeys attribute of the corresponding JavaListener.Set to 'DLL' to make the dispatcher communicate with a DLL set on the classpathName of the JavaListener that should be called (will be ignored when javaListenerSessionKey is set)Name of the sessionKey which holds the name of the JavaListener that should be calledComma separated list of keys of session variables that will be returned to caller, for correct results as well as for erroneous results.
The set of available sessionKeys to be returned might be limited by the returnedSessionKeys attribute of the corresponding JavaListener.If set <code>false</code>, the call is made asynchronously. This implies isolated=<code>true</code> Default: trueIf <code>true</code>, the call is made in a separate thread, possibly using separate transaction Default: falseIf <code>true</code>, the sender waits upon open until the called JavaListener is opened Default: trueMaximum time (in seconds) the sender waits for the listener to start. A value of -1 indicates to wait indefinitely Default: 60If set <code>false</code>, the xml-string \"<error>could not find JavaListener [...]</error>\" is returned instead of throwing a senderexception Default: trueThis is the contract number for iDIN the Merchant received from its Acquirer after registration,
and is used to unambiguously identify the Merchant. This number is 10-digits long, where the
first four digits are equal to the AcquirerID.The SubID that uniquely defines the name and address of the Merchant to be used for iDIN,
if operating under different brands or trading entities. The Merchant obtains the SubID
from its Acquirer after registration for iDIN. A Merchant can request permission from
the Acquirer to use one or more SubIDs.The web address provided by the Merchant in the transaction request that is used to redirect the
Consumer back to the Merchant after completing the authentication in the Issuer domain. The URL
does not necessarily begin with http:// or https://, it can also start with an app handler
e.g. companyname-nlservice://.The Java iDIN Software Library needs to access a keystore located in the Java classpath to
store all the required certificatesThe password used to access the keystoreThe AuthAlias used to access the keystoreThis is the certificate owned by the Merchant. It's the private certificate
used to sign messages sent by the Merchant to the Acquirer's Routing Service platform. Its public
key is also used by the Acquirer to authenticate incoming messages from the Merchant. The
Merchant certificate must be in PKCS#12 format which has the extension .p12 or .pfxIn case the merchant certificate has been password protectedIn case the merchant certificate has been password protectedThis is the public certificate used to authenticate incoming messages from the Acquirer. The library
only needs its public key. The public certificate must be in PEM format (base64 ASCII) and typically
has the file extension .cer,.crt or .pem.This is the public certificate used to authenticate incoming messages from the Acquirer. The library
only needs its public key. The public certificate must be in PEM format (base64 ASCII) and typically
has the file extension .cer,.crt or .pem.This is the certificate owned by the Merchant. Its public key is used by the Issuer to encrypt information.
The Merchant can then use the private key to decrypt that information. The SAML certificate must be in
PKCS#12 format which has the extension .p12 or .pfx;In case the SAML certificate has been password protectedIn case the SAML certificate has been password protectedLoad configuration from XML. Attributes may overwrite this 'default'.Session key in which LUW information is stored. If set, actions that share a LUW-handle will be executed using the same destination. Can only be used for synchronous functionsName of the parameter used to indicate the name of the SapSystem used by this object if the attribute <code>sapSystemName</code> is empty Default: sapSystemNameThe hostname of the IMAP serverThe port of the IMAP server Default: 993Alias used to obtain accessToken or username and password for authentication to Exchange mail server.
If the alias refers to a combination of a username and a password, the deprecated Basic Authentication method is used.
If the alias refers to a password without a username, the password is treated as the accessToken.Username for authentication to mail server.Password for authentication to mail server.Folder (subfolder of root or of inbox) to look for mails. If empty, the inbox folder is usedComma separated list of fields to try as response address Default: replyTo,from,sender,Return-Paththe name of the javascript file containing the functions to runthe name of the javascript function that will be called (first) Default: mainthe name of the JavaScript engine to use. Default: J2V8If set, input is taken from this session key, instead of regular inputIf set, this fixed value is taken as input, instead of regular inputIf set <code>true</code>, the input of a pipe is restored before processing the next one Default: falseIf set, the result is stored under this session keyIf set, the input is stored under this session keyWhen <code>true</code>, the xml result of the transformation is converted back to json Default: trueNamespace definitions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions Default: j=http://www.w3.org/2013/XSL/jsonIf true, then this sender will process the XSLT while streaming in a different thread. Can be used to switch streaming off for debugging purposes Default: set by appconstant xslt.streaming.defaultLocation of stylesheet to apply to the input messageSession key to retrieve stylesheet location. Overrides stylesheetName or xpathExpression attributeSize of cache of stylesheets retrieved from styleSheetNameSessionKey Default: 100Alternatively: XPath-expression to create stylesheet fromOmit the XML declaration on top of the output. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheetIf set <code>true</code>, any output is reparsed before being handled as XML again. If not set, the stylesheet is searched for <code>@disable-output-escaping='yes'</code> and the value is set accordingly Default: false, if not set in stylesheetFor xpathExpression only Default: textIf set <code>true</code>, result is pretty-printed. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheetIf set <code>true</code> namespaces (and prefixes) in the input message are removed before transformation Default: falseIf set <code>true</code>, the transformer is enabled to handle lexical events, allowing it for example to process comments and to distinghuish CDATA from escaped text.
Beware that this option can cause spurious NullPointerExceptions due to a race condition in streaming XSLT 1.0 processing in Xalan 2.7.2 Default: falseIf set <code>true</code> empty tags in the output are removed after transformation Default: falseIf set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan). <code>0</code> will auto-detect Default: 0If true, then this sender will process the XSLT while streaming in a different thread. Can be used to switch streaming off for debugging purposes Default: set by appconstant xslt.streaming.defaultLocation of stylesheet to apply to the input messageSession key to retrieve stylesheet location. Overrides stylesheetName or xpathExpression attributeSize of cache of stylesheets retrieved from styleSheetNameSessionKey Default: 100Alternatively: XPath-expression to create stylesheet fromOmit the XML declaration on top of the output. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheetIf set <code>true</code>, any output is reparsed before being handled as XML again. If not set, the stylesheet is searched for <code>@disable-output-escaping='yes'</code> and the value is set accordingly Default: false, if not set in stylesheetNamespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. For some other use cases (NOT xpathExpression), one entry can be without a prefix, that will define the default namespace.
If left empty, an the xpathExpression will match any namespaceFor xpathExpression only Default: textIf set <code>true</code>, result is pretty-printed. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheetIf set <code>true</code> namespaces (and prefixes) in the input message are removed before transformation Default: falseIf set <code>true</code>, the transformer is enabled to handle lexical events, allowing it for example to process comments and to distinghuish CDATA from escaped text.
Beware that this option can cause spurious NullPointerExceptions due to a race condition in streaming XSLT 1.0 processing in Xalan 2.7.2 Default: falseIf set <code>true</code> empty tags in the output are removed after transformation Default: falseIf set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan). <code>0</code> will auto-detect Default: 0Specifies LDAP operation to perform Default: readURL to context to search in, e.g. 'ldap://edsnlm01.group.intranet/ou=people, o=ing' to search in te people group of ing cds. Used to overwrite the providerURL specified in jmsRealm.Specifies subject to perform operation on. Default: attributeComma separated list of attributes to return. When no are attributes specified, all the attributes from the object read are returned. Default: <i>all attributes</i>Specifies whether connection pooling is used or not Default: true when principal not set as parameter, false otherwiseSpecifies the time (in ms) that is spent searching for results for operation search Default: 20000Key of session variable used to store cause of errors Default: errorReasonThe maximum number of entries to be returned by a search query, or <code>0</code> for unlimited Default: 0When <code>true</code> the attributes passed by the input xml are scanned for an attribute with id unicodepwd, when found the value of this attribute will be encoded as required by active directory (a UTF-16 encoded unicode string containing the password surrounded by quotation marks) before sending it to the LDAP server Default: false(Only used when <code>operation=search/deepsearch</code>) when <code>true</code> the xml '<ldapresult>object not found</ldapresult>' is returned instead of the PartialResultException 'unprocessed continuation reference(s)' Default: falsePath to the folder that serves as the root of this virtual filesystem. All specifications of folders or files are relative to this root.
When the root is left unspecified, absolute paths to files and folders can be usedWhether the LocalFileSystem tries to create the root folder if it doesn't exist yet.category under which messages are logged Default: name of the senderlevel on which messages are logged Default: infoName of the SMTP-host by which the messages are to be sendPort of the SMTP-host by which the messages are to be send Default: 25When set to true, we ensure TLS is being used Default: falseauthAlias used to obtain credentials for authenticationpassword of useridTimeout <i>in milliseconds</i> for socket connection timeout and socket i/o timeouts Default: 20000Comma separated list of sessionKey's to be stored together with the message. Please note: corresponding MessageStoreListener must have the same value for this attribute.If set to <code>true</code>, the message is stored only if the MessageId is not present in the store yet. Default: <code>true</code>Set the slotId, an identifier to keep separate the messages inserted
by different MessageStoreSenders.
<br/>
This field should be set.If set to <code>true</code>, the messages are stored compressed Default: trueSet the slotId, an identifier to keep separate the messages inserted
by different JdbcTransactionalStorage instances.
<br/>
This field is optional, unless the attribute #onlyStoreWhenMessageIdUnique is
set to {@code true}.If set to <code>true</code>, the messages are stored compressed Default: trueIf set to <code>true</code>, the message is stored only if the MessageId is not present in the store yet. Default: falseName of the table messages are stored in. Default: IBISSTOREName of the index, to be used in hints for query optimizer too (only for Oracle). Default: IX_IBISSTOREThe name of the column that contains the primary key of the table Default: MESSAGEKEYThe name of the column messageIds are stored in Default: MESSAGEIDThe name of the column correlation-ids are stored in Default: CORRELATIONIDThe name of the column message themselves are stored in Default: MESSAGEThe name of the column the timestamp is stored in Default: MESSAGEDATEThe name of the column comments are stored in Default: COMMENTSThe name of the column the timestamp for expiry is stored in Default: EXPIRYDATEThe name of the column labels are stored in Default: LABELPrefix to be prefixed on all database objects (tables, indices, sequences), e.g. to access a different Oracle schemaRegular expression to mask strings in the errorStore/logStore.
Every character between to the strings in this expression will be replaced by a '*'.
<br/>
For example, the regular expression (?<=<party>).*?(?=</party>) will replace every
character between keys <party> and </party>
<br/>
When no hideRegex is configured on the errorStore / logStore but is configured on the org.frankframework.receivers.Receiver#setHideRegex(String),
then the Receiver's hideRegex is used for the errorStore / logStore.(Only used when hideRegex is not empty) Specifies the way to hide Default: ALLThe MongoDB datasource Default: mongodb.datasource.defaultDatabase to connect to. Can be overridden by parameter databaseCollection to act upon. Can be overridden by parameter collectionActionFilter. Can contain references to parameters between ?{ and }. Can be overridden by parameter filterLimit to number of results returned. A value of 0 means 'no limit'. Can be overridden by parameter limit. Default: 0Only for find operation: return only the count and not the full document(s) Default: falseOutputFormat Default: JSONFormat the output in easy legible way (currently only for XML)Only works in combination with the UPLOAD action. If set, and not specified as parameter, the sender will sign the file to be uploaded.NetStorage action to be usedAt the time of writing, NetStorage only supports version 1 Default: 1NetStorage CP Code of the storage groupThe destination URL for the Akamai NetStorage. (Only the hostname, without CpCode; eq. xyz-nsu.akamaihd.net)Login is done via a Nonce and AccessTokenVersion to validate queries made to NetStorage backend. Default: 5Login is done via a Nonce and AccessTokenRoot directory (appended to the url + cpCode)Alias used to obtain credentials for nonce (username) and accesstoken (password)(Only used when xHtml=<code>true</code>) stylesheet to apply to the HTML responseThe functional name of the object.Timeout in ms of obtaining a connection/result. Default: 10000Username used for authentication to the hostPassword used for authentication to the hostSet the upper limit to the amount of concurrent threads that can be run simultaneously. Use 0 to disable. Default: 0reload the configuration regardless of the version Default: falsetype of the optional status field which is set after the row is written to the file: timestampKey of session variable that contains the name of the file to use.If set <code>true</code> and the file already exists, the resultset rows are written to the end of the file. Default: falseIf set (and >=0), this session key contains the maximum number of records which are processed.
If <code>query</code> contains a group field (3), then also following records with the same group field value as the last record are processedThe destination, aka smb://xxx/yyy shareThe SMB share usernameThe SMB share passwordAlias used to obtain credentials for the SMB sharelogon/authentication domain, in case the user account is bound to a domain such as Active Directory.when <code>true</code>, intermediate directories are created also Default: falsecontrols whether hidden files are seen or not Default: falseHostname of the SMB share.Port to connect to. Default: 445Type of the authentication either 'NTLM' or 'SPNEGO'.
When setting SPNEGO, the host must use the FQDN, and must be registered on the KDC with a valid SPN. Default: SPNEGOalias used to obtain credentials for the smb sharethe smb share usernamethe smb share passwordNTLM only: logon/authentication domain, in case the user account is bound to a domain such as Active Directory.May not contain '\\' characters. The destination share, aka smb://xxx/yyy share.SPNEGO only:
Key Distribution Center, typically hosted on a domain controller.
Stored in <code>java.security.krb5.kdc</code>SPNEGO only:
Kerberos Realm, case sensitive. Typically upper case and the same as the domain name.
An Active Directory domain acts as a Kerberos Realm.
Stored in <code>java.security.krb5.realm</code>If <code>false</code>, the sender operates in RR mode: the a reply is expected from SAP, and the sender does not participate in a transaction. When <code>false</code>, the sender operates in FF mode: no reply is expected from SAP, and the sender joins the transaction, that must be present. The SAP transaction is committed right after the XA transaction is completed. Default: falseName of the RFC-function to be called in the SAP systemName of the parameter used to obtain the functionName from if the attribute <code>functionName</code> is empty Default: functionNameexpression that generates the cron triggerjob group in which the new trigger is to be created (optional)pattern that leads to the name of the registered trigger(optional)java listener to be called when scheduler trigger firesTimeout in ms of obtaining a connection/result. Default: 10000The maximum number of concurrent connections Default: 10The maximum number of times the execution is retried Default: 1 (for repeatable messages) else 0Proxy hostProxy port Default: 80Alias used to obtain credentials for authentication to proxyProxy usernameProxy passwordProxy realmresource URL to keystore or certificate to be used for authentication. If none specified, the JVMs default keystore will be used.Type of keystore Default: pkcs12Authentication alias used to obtain keystore passwordDefault password to access keystoreAlias to obtain specific certificate or key in keystoreAuthentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code>Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code>Key manager algorithm. Can be left empty to use the servers default algorithmResource URL to truststore to be used for authenticating peer. If none specified, the JVMs default truststore will be used.Type of truststore Default: jksAuthentication alias used to obtain truststore passwordDefault password to access truststoreTrust manager algorithm. Can be left empty to use the servers default algorithmIf <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peerIf <code>true</code>, self signed certificates are accepted Default: falseIf <code>true</code>, CertificateExpiredExceptions are ignored Default: falseIf <code>true</code>, a redirect request will be honoured, e.g. to switch to HTTPS Default: trueControls whether connections checked to be stale, i.e. appear open, but are not. Default: trueUsed when StaleChecking=<code>true</code>. Timeout after which an idle connection will be validated before being used. Default: 5000 msSecure socket protocol (such as 'TLSv1.2') to use when a SSLContext object is generated. Default: TLSv1.2authAlias used to obtain credentials for authenticationpassword of useridPath of the file or directory to start working. Default: Home folder of the sftp userName or ip address of remote hostPort number of remote host Default: 21Name of the alias to obtain credentials to authenticatie on remote serverName of the user to authenticatie on remote serverPassword to authenticatie on remote serverProxy hostnameProxy port Default: 1080alias to obtain credentials to authenticate on proxyDefault user name in case proxy requires authenticationDefault password in case proxy requires authenticationTransport type in case of sftp Default: SOCKS5Optional preferred encryption from client to server for sftp protocolOptional preferred encryption from server to client for sftp protocolPath to private key file for sftp authenticationName of the alias to obtain credentials for passphrase of private key filePassphrase of private key filePath to file with knownhostsVerify the hosts againt the knownhosts file. Default: trueName of the sender that is considered that is considered to be the golden standard, i.e. the source of truth. Default: the first sender specifiedThe sender name which will process the results Default: the last sender specifiedIf set <code>true</code> the sender will wait for all shadows to have finished. Otherwise the collection of results will happen in a background thread. Default: falseA SQL statement that calls a stored procedure. The statement should begin with the <code>CALL</code> or <code>EXEC</code>
SQL keyword depending on SQL dialect. In case of doubt, the safe choice is to always start with <code>CALL</code> and choose Oracle dialect.The query type. For stored procedures, valid query types are JdbcQuerySenderBase.QueryType#SELECT and JdbcQuerySenderBase.QueryType#OTHER.
Use JdbcQuerySenderBase.QueryType#SELECT when your stored procedure returns a row set (not supported by Oracle and PostgreSQL).
Use JdbcQuerySenderBase.QueryType#OTHER when your stored procedure returns values via <code>OUT</code> or <code>INOUT</code> parameters, or does not return
anything at all.
<p>
Using any other value will be rejected.
</p> Default: OTHERIf set, the SQL dialect in which the queries are written and should be translated from to the actual SQL dialectThe type of output. If not set then defaults to old-style XML. If set to XML, new-style XML is used. EXPERIMENTAL: datatypes like numbers are not yet rendered correctly Default: falsewhen <code>true</code>, messages sent are put in a soap envelope and the soap envelope is removed from received messages (soap envelope will not be visible to the pipeline) Default: truethe soapactionuri to be set in the requestheaderparameter to obtain the soapactionurithe encodingstyle to be set in the messageheadercontrols whether soap faults generated by the application generate an exception, or are treated as 'normal' messages Default: truethe namespace of the message sent. identifies the service to be called. may be overriden by an actual namespace setting in the message to be sentparameter to obtain the servicenamespacenamespace defintions to be added in the soap envelope tag. must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitionsusername used to obtain credentials for authentication to web services securitypassword used to obtain credentials for authentication to web services securityalias used to obtain credentials for authentication to web services securitywhen true, the password is sent digested. otherwise it is sent in clear text Default: true(Only used when xHtml=<code>true</code>) stylesheet to apply to the HTML responseThe functional name of the object.Timeout in ms of obtaining a connection/result. Default: 10000Authentication alias used for authentication to the hostUsername used for authentication to the hostPassword used for authentication to the hostone of create, append or replaceremote directory is prefixed witht the remote filecharacterset conversionname of logfile for xcomtcp to be usedpassword of user on remote systemport of remote hostset queue off or onhostname or tcpip adres of remote hostset between 0 (no trace) and 10set truncation off or onloginname of user on remote systemremote file to create. if empty, the name is equal to the local filedirectory in which to run the xcomtcp commandpath to xcomtcp commandname of the alias to obtain credentials to authenticatie on remote serverFull pathname to the XFB script to be executed to transfer the fileWhen set to <code>true</code>, the file is copied before calling the XFB script.
Reasons to copy the file:
- XFB will rename the file (prefix it with FXB_) and delete it.
- On Linux the sticky bit (drwxrws--- wasadmin xfbgw) isn't honoured with a move (only with a copy) (on AIX the sticky bit works for both move and copy).Prefix for the name of the copied or original filename. When the name of the original file starts with this prefix, it is removed. Otherwise this prefix is added to the filename of the copied file.The functional name of the object.Enable full schema grammar constraint checking, including checking which
may be time-consuming or memory intensive. Currently, particle unique
attribution constraint checking and particle derivation restriction
checking are controlled by this option.
<p>
see property
http://apache.org/xml/features/validation/schema-full-checking
</p> Default: <code>false</code>Should the XmlValidator throw a PipeRunexception on a validation error. If not, a forward with name 'failure' must be defined. Default: falseIf set: key of session variable to store reasons of mis-validation in Default: failureReasonLike <code>reasonSessionKey</code> but stores reasons in xml format and more extensive Default: xmlFailureReasonIf set <code>true</code>, the input is assumed to be the name of the file to be validated. Otherwise the input itself is validated Default: falseCharacterset used for reading file, only used when <code>validateFile</code> is <code>true</code> Default: utf-8If set <code>true</code>, send warnings to logging and console about syntax problems in the configured schema('s).
Alternatively, warnings can be switched off using suppression properties XSD_VALIDATION_WARNINGS_SUPPRESS_KEY, XSD_VALIDATION_ERROR_SUPPRESS_KEY and XSD_VALIDATION_FATAL_ERROR_SUPPRESS_KEY Default: trueIgnore namespaces in the input message which are unknown Default: true when <code>schema</code> or <code>noNamespaceSchemaLocation</code> is used, false otherwiseIf set <code>true</code>, the number for caching validators in appConstants is ignored and no caching is done (for this validator only) Default: falseIf set to <code>1.0</code>, Xerces's previous XML Schema factory will be used, which would make all XSD 1.1 features illegal. The default behaviour can also be set with <code>xsd.processor.version</code> property. Default: <code>1.1</code>Session key used to refer to collection. Must be specified with another value if multiple CollectorPipes are active at the same time in the same session Default: collectionDomparser om AFM-XML berichten om te zetten in edifactberichten (voor de backoffice).Sender to work with the Amazon S3 Filesystem.
<p>
In addition to regular parameters for filesystem senders, it is possible
to set custom user-metadata on S3 files by prefixing parameter names with
FileAttribute..
This prefix will be not be part of the actual metadata property name.
</p>
<p>
The string value of these parameters will be used as value of the custom metadata attribute.
</p>Sender to obtain information from and write to a CMIS application.
<p>
When <code>action</code>=<code>get</code> the input (xml string) indicates the id of the document to get. This input is mandatory.
</p>
<p>
<b>Example:</b>
<pre><code>
<cmis>
<id>documentId</id>
</cmis>
</code></pre>
</p>
<p>
When <code>action</code>=<code>delete</code> the input (xml string) indicates the id of the document to get. This input is mandatory.
</p>
<p>
<b>Example:</b>
<pre><code>
<cmis>
<id>documentId</id>
</cmis>
</code></pre>
</p>
<p>
When <code>action</code>=<code>create</code> the input (xml string) indicates document properties to set. This input is optional.
</p>
<p>
<b>Example:</b>
<pre><code>
<cmis>
<name>Offerte</name>
<objectTypeId>NNB_Geldlening</objectTypeId>
<mediaType>application/pdf</mediaType>
<properties>
<property name="ArrivedAt" type="datetime" formatString="yyyy-MM-dd'T'HH:mm:ss.SSSz">2014-11-27T16:43:01.268+0100</property>
<property name="ArrivedBy">HDN</property>
<property name="DocumentType">Geldlening</property>
</properties>
</cmis>
</code></pre>
</p>
<p>
<table border="1">
<tr><th>attributes</th><th>description</th><th>default</th></tr>
<tr><td>name</td><td>mandatory property "cmis:name". If not set the sender attribute fileNameSessionKey is used</td><td>"[unknown]"</td></tr>
<tr><td>objectTypeId</td><td>mandatory property "cmis:objectTypeId"</td><td>"cmis:document"</td></tr>
<tr><td>mediaType</td><td>the MIME type of the document to store</td><td>"application/octet-stream"</td></tr>
<tr><td>property</td><td>custom document property to set. Possible attributes:
<table border="1">
<tr><th>name</th><th>description</th><th>default</th></tr>
<tr><td>type</td><td>
<ul>
<li><code>string</code>: renders the value</li>
<li><code>datetime</code>: converts the value to a Date, by default using formatString <code>yyyy-MM-dd HH:mm:ss</code></li>
</ul>
</td><td>string</td></tr>
<tr><td>formatString</td><td>used in combination with <code>datetime</code></td><td>yyyy-MM-dd HH:mm:ss</td></tr>
</table></td><td> </td></tr>
</table>
</p>
<p>
When <code>action</code>=<code>find</code> the input (xml string) indicates the query to perform.
</p>
<p>
<b>Example:</b>
<pre><code>
<query>
<statement>select * from cmis:document</statement>
<maxItems>10</maxItems>
<skipCount>0</skipCount>
<searchAllVersions>true</searchAllVersions>
<includeAllowableActions>true</includeAllowableActions>
</query>
</code></pre>
</p>
<p>
When <code>action</code>=<code>update</code> the input (xml string) indicates document properties to update.
</p>
<p>
<b>Example:</b>
<pre><code>
<cmis>
<id>123456789</id>
<properties>
<property name="ArrivedAt" type="datetime" formatString="yyyy-MM-dd'T'HH:mm:ss.SSSz">2014-11-27T16:43:01.268+0100</property>
<property name="ArrivedBy">HDN</property>
<property name="DocumentType">Geldlening</property>
</properties>
</cmis>
</code></pre>
</p>
<p>
<table border="1">
<tr><th>attributes</th><th>description</th><th>default</th></tr>
<tr><td>id</td><td>mandatory property "cmis:objectId" which indicates the document to update</td><td> </td></tr>
<tr><td>property</td><td>custom document property to update. See <code>action</code>=<code>create</code> for possible attributes</td><td> </td></tr>
</table>
</p>Sender that executes either its input or a fixed line, with all parametervalues appended, as a command.Sender that sleeps for a specified time, which defaults to 5000 msecs.
Useful for testing purposes.QuerySender that interprets the input message as a query, possibly with attributes.
Messages are expected to contain sql-text.Echos input to output.ESB (Enterprise Service Bus) extension of JmsSender.Implementation of a FileSystemSender that enables to manipulate messages in an Exchange folder.FileSystem Sender extension to handle Attachments.QuerySender that assumes a fixed query, possibly with attributes.
<p><b>NOTE:</b> See DB2XMLWriter for ResultSet!</p>FixedResultSender, same behaviour as FixedResultPipe, but now as a ISender.Sender for the HTTP protocol using HttpMethod. By default, any response code outside the 2xx or 3xx range
is considered an error and the <code>exception</code> forward of the SenderPipe is followed if present and if there
is no forward for the specific HTTP status code. Forwards for specific HTTP codes (e.g. "200", "201", ...)
are returned by this sender, so they are available to the SenderPipe.
<p><b>Expected message format:</b></p>
<p>GET methods expect a message looking like this:
<pre>
param_name=param_value&another_param_name=another_param_value
</pre>
<p>POST AND PUT methods expect a message similar as GET, or looking like this:
<pre>
param_name=param_value
another_param_name=another_param_value
</pre>
Note:
When used as MTOM sender and MTOM receiver doesn't support Content-Transfer-Encoding "base64", messages without line feeds will give an error.
This can be fixed by setting the Content-Transfer-Encoding in the MTOM sender.
</p>JMS sender which will add an IMS header to the message and call the MQ specific logic.
<p>See JmsSender for configuration</p>Posts a message to another IBIS-adapter or application in the same JVM using IbisServiceDispatcher.
An IbisJavaSender makes a call to a Receiver with a JavaListener
or any other application in the same JVM that has registered a <code>RequestProcessor</code> with the IbisServiceDispatcher.
<h4>configuring IbisJavaSender and JavaListener</h4>
<ul>
<li>Define a SenderPipe with an IbisJavaSender</li>
<li>Set the attribute <code>serviceName</code> to <i>yourExternalServiceName</i></li>
</ul>
In the Adapter to be called:
<ul>
<li>Define a Receiver with a JavaListener</li>
<li>Set the attribute <code>serviceName</code> to <i>yourExternalServiceName</i></li>
</ul>
N.B. Please make sure that the IbisServiceDispatcher-1.4.jar or newer is present on the class path of the server.Posts a message to another IBIS-adapter in the same IBIS instance. If the callee exits with an <<code>exit</code>>
that has state PipeLine.ExitState#ERROR, an error is considered to happen
in the caller which means that the <code>exception</code> forward is followed if it is present.
<p/>
<p/>
Returns exit.code as forward name to SenderPipe provided that exit.code can be parsed as integer.
For example, if the called adapter has an exit state with code
<code>2</code>, then the SenderPipe supports a forward with name <code>2</code>
that is followed when the called adapter exits with the mentioned exit. This does not work if the code is for example <code>c2</code>.
<p/>
<p/>
An IbisLocalSender makes a call to a Receiver with either a WebServiceListener
or a JavaListener.
<h3>Configuration of the Adapter to be called</h3>
A call to another Adapter in the same IBIS instance is preferably made using the combination
of an IbisLocalSender and a JavaListener. If,
however, a Receiver with a WebServiceListener is already present, that can be used in some cases, too.
<h4>configuring IbisLocalSender and JavaListener</h4>
<ul>
<li>Define a SenderPipe with an IbisLocalSender</li>
<li>Set the attribute <code>javaListener</code> to <i>yourServiceName</i></li>
<li>Do not set the attribute <code>serviceName</code></li>
</ul>
In the Adapter to be called:
<ul>
<li>Define a Receiver with a JavaListener</li>
<li>Set the attribute <code>name</code> to <i>yourServiceName</i></li>
<li>Do not set the attribute <code>serviceName</code>, except if the service is to be called also
from applications other than this IBIS-instance</li>
</ul>
<h4>configuring IbisLocalSender and WebServiceListener</h4>
<ul>
<li>Define a SenderPipe with an IbisLocalSender</li>
<li>Set the attribute <code>serviceName</code> to <i>yourIbisWebServiceName</i></li>
<li>Do not set the attribute <code>javaListener</code></li>
</ul>
In the Adapter to be called:
<ul>
<li>Define a Receiver with a WebServiceListener</li>
<li>Set the attribute <code>name</code> to <i>yourIbisWebServiceName</i></li>
</ul>Requires the net.bankid.merchant.library V1.2.9Sender used to run JavaScript code using `JavascriptEngine` implementations.
<p>
This sender can execute a function of a given Javascript file, the result of the function will be the output of the sender.
The parameters of the Javascript function to run are given as parameters by the adapter configuration
The sender doesn't accept nor uses the given input, instead for each argument for the #jsFunctionName method,
you will need to create a parameter on the sender.
</p>
<p>
The result of the Javascript function should be of type String, or directly convertible to String from a primitive type
or an array of primitive types / strings, as the output of the sender will be of type String.
</p>
<p>
Failure to ensure the output is a string may mean the result will look like {@code [Object object]}.
</p>This class sends messages with JMS.Perform an XSLT transformation with a specified stylesheet on a JSON input, yielding JSON, yielding JSON, XML or text.
JSON input is transformed into XML map, array, string, integer and boolean elements, in the namespace http://www.w3.org/2013/XSL/json.
The XSLT stylesheet or XPathExpression operates on these element.Sender to obtain information from and write to an LDAP Directory.
Returns the set of attributes in an XML format. Examples are shown below.
<h2>example</h2>
Consider the following configuration example:
<code>
<pre>
<sender
className="org.frankframework.ldap.LdapSender"
ldapProviderURL="ldap://servername:389/o=ing"
operation="read"
attributesToReturn="givenName,sn,telephoneNumber" >
<param name="entryName" xpathExpression="entryName" />
</sender>
</pre>
</code>
<br/>
This may result in the following output:
<code><pre>
<ldap>
<entryName>uid=srp,ou=people</entryName>
<attributes>
<attribute attrID="givenName">
<value>Jan</value>
</attribute>
<attribute attrID="telephoneNumber">
<value>010 5131123</value>
<value>06 23456064</value>
</attribute>
<attribute attrID="sn">
<value>Jansen</value>
</attribute>
</attributes>
</ldap>
</pre></code> <br/>
Search or Read?
Read retrieves all the attributes of the specified entry.
Search retrieves all the entries of the specified (by entryName) context that have the specified attributes,
together with the attributes. If the specified attributes are null or empty all the attributes of all the entries within the
specified context are returned.
Sample result of a <code>read</code> operation:<br/><code><pre>
<attributes>
<attribute>
<attribute name="employeeType" value="Extern"/>
<attribute name="roomNumber" value="DP 2.13.025"/>
<attribute name="departmentCode" value="358000"/>
<attribute name="organizationalHierarchy">
<item value="ou=ING-EUR,ou=Group,ou=Organization,o=ing"/>
<item value="ou=OPS&IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/>
<item value="ou=000001,ou=OPS&IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/>
</attribute>
<attribute name="givenName" value="Gerrit"/>
</attributes>
</pre></code> <br/>
Sample result of a <code>search</code> operation:<br/><code><pre>
<entries>
<entry name="uid=srp">
<attributes>
<attribute>
<attribute name="employeeType" value="Extern"/>
<attribute name="roomNumber" value="DP 2.13.025"/>
<attribute name="departmentCode" value="358000"/>
<attribute name="organizationalHierarchy">
<item value="ou=ING-EUR,ou=Group,ou=Organization,o=ing"/>
<item value="ou=OPS&IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/>
<item value="ou=000001,ou=OPS&IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing"/>
</attribute>
<attribute name="givenName" value="Gerrit"/>
</attributes>
</entry>
<entry> .... </entry>
.....
</entries>
</pre></code> <br/>Sender to work with the server local filesystem.
<p>
In addition to regular parameters for filesystem senders, it is possible
to set custom extended attributes on files by prefixing parameter names with
FileAttribute..
This prefix will be not be part of the actual metadata property name.
</p>
<p>
The string value of these parameters will be used as value of the custom metadata attribute.
</p>Sender that just logs its message.JMS sender which will call IBM WebSphere MQ specific
setTargetClient(JMSC.MQJMS_CLIENT_NONJMS_MQ) on the destination prior to
sending a message. This is needed when the MQ destination is not a JMS
receiver otherwise format errors occur (e.g. dots are added after every
character in the message).
<p>See JmsSender for configuration</p>sender that sends a mail specified by an XML message.
<p>
Sample email.xml:
<code><pre>
<email>
<recipients>
<recipient type="to">***@hotmail.com</recipient>
<recipient type="cc">***@gmail.com</recipient>
</recipients>
<from name="*** ***">***@yahoo.com</from>
<subject>This is the subject</subject>
<threadTopic>subject</threadTopic>
<message>This is the message</message>
<messageType>text/plain</messageType><!-- Optional -->
<messageBase64>false</messageBase64><!-- Optional -->
<charset>UTF-8</charset><!-- Optional -->
<attachments>
<attachment name="filename1.txt">This is the first attachment</attachment>
<attachment name="filename2.pdf" base64="true">JVBERi0xLjQKCjIgMCBvYmoKPDwvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1...vSW5mbyA5IDAgUgo+PgpzdGFydHhyZWYKMzQxNDY2CiUlRU9GCg==</attachment>
<attachment name="filename3.pdf" url="file:/c:/filename3.pdf"/>
<attachment name="filename4.pdf" sessionKey="fileContent"/>
</attachments><!-- Optional -->
</email>
</pre></code>
</p><p>
Notice: the XML message must be valid XML. Therefore, especially the message element
must be plain text or be wrapped as CDATA. Example:
<code><pre>
<message><![CDATA[<h1>This is a HtmlMessage</h1>]]></message>
</pre></code>
</p><p>
The <code>sessionKey</code> attribute for attachment can contain an inputstream or a string. Other types are not supported at this moment.
</p><p>
The attribute order for attachments is as follows:
<ol>
<li>sessionKey</li>
<li>url</li>
<li><i>value of the attachment element</i></li>
</ol>
</p><p>
The <code>base64</code> attribute is only used when the value of the PipeLineSession variable <code>sessionKey</code> is a String object
or when the value of the attachment element is used. If <code>base64=true</code> then the value will be decoded before it's used.
</p><p>
<b>Compilation and Deployment Note:</b> mail.jar (v1.2) and activation.jar must appear BEFORE j2ee.jar.
Otherwise errors like the following might occur: <code>NoClassDefFoundException: com/sun/mail/util/MailDateFormat</code>
</p>Send messages to the IBISSTORE database table to have them processed exactly-once by another
adapter which will read the messages using a MessageStoreListener.
This other adapter will process the messages asynchronously and (optionally)
under transaction control. Duplicate messages are ignored based on the
messageId (except when onlyStoreWhenMessageIdUnique is set to false), hence
the sender of the message can retry sending the message until a valid reply
is received in which case it can be certain that the message is stored in the
database table IBISSTORE.
<br/><br/>
If you have a <code>MessageStoreSender</code> it does not make sense to add a <code>JdbcMessageLog</code>
or <code>JdbcErrorStorage</code> in the same sender pipe. A <code>MessageStoreSender</code>
acts as a message log and an error store. It can be useful however to add a message log or error store
to the adapter around the sender pipe, because errors may occur before the message reaches the sender pipe.
<br/><br/>
Example configuration:
<code><pre>
<SenderPipe name="Send">
<MessageStoreSender
slotId="${instance.name}/TestMessageStore"
onlyStoreWhenMessageIdUnique="false"
/>
</SenderPipe>
</pre></code>Sender to perform action on a MongoDB database.MQTT listener which will connect to a broker and subscribe to a topic.
Links to <a href="https://www.eclipse.org/paho/files/javadoc" target="_blank">https://www.eclipse.org/paho/files/javadoc</a> are opened in a new window/tab because the response from eclipse.org contains header X-Frame-Options:SAMEORIGIN which will make the browser refuse to open the link inside this frame.Sender for Akamai NetStorage (HTTP based).
<p>See HttpSenderBase for more arguments and parameters!</p>
<p><b>AuthAlias:</b></p>
<p>If you do not want to specify the nonce and the accesstoken used to authenticate with Akamai, you can use the authalias property. The username represents the nonce and the password the accesstoken.</p>Collection of Senders, that are executed all at the same time.Wrapper for senders, that opens the wrapped sender at runtime before each sender action, and closes it afterwards.
This prevents (long) open connections inside Senders and possible connection failures.
<b>Example:</b>
<pre><code>
<SenderPipe>
<ReconnectSenderWrapper>
<EchoSender myAttribute="myValue" />
</ReconnectSenderWrapper>
</SenderPipe>
</code></pre>
</p>Performs a reload on database configuration.
<p>It is possible to set the name of the configuration with the parameter 'name'.</p>
<p>You can dynamically set 'forceReload' attribute with the parameter 'forceReload'.</p>QuerySender that writes each row in a ResultSet to a file.Uses the (old) SMB 1 protocol.
<br/>
Only supports NTLM authentication.Uses the (newer) SMB 2 and 3 protocol.
Possible error codes:
<br/>
Pre-authentication information was invalid (24) or Identifier doesn't match expected value (906): login information is incorrect
Server not found in Kerberos database (7): Verify that the hostname is the FQDN and the server is using a valid SPN.Registers a trigger in the scheduler so that the message is send to a javalistener
at a scheduled time.Sender that sends a mail via SendGrid v3 (cloud-based SMTP provider).
Sample XML file can be found in the path: iaf-core/src/test/resources/emailSamplesXML/emailSample.xmlSeries of Senders, that are executed one after another.Wrapper for senders, that allows to get input from a session variable, and to store output in a session variable.Collection of Senders, that are executed all at the same time. Once the results are processed, all results will be sent to the resultSender,
while the original sender will return its result to the pipeline.
<p>Multiple sub-senders can be configured within the ShadowSender, the minimum amount of senders is 2 (originalSender + resultSender)</p>StoredProcedureQuerySender is used to send stored procedure queries and retrieve the result.
<p>
<h3>QueryType settings and OUTPUT parameters</h3>
The StoredProcedureQuerySender class has the following features:
<ul>
<li>It supports setting the output parameters of the stored procedure by setting 'mode' attribute of
the corresponding 'Param' to 'OUTPUT' or 'INOUT'.</li>
<li>The queryType can only be 'SELECT' or 'OTHER'.</li>
<li>Use queryType 'SELECT' when the stored procedure only returns a set of rows, and you need
the output to be the format as FixedQuerySender (see DB2XMLWriter).</li>
<li>Use queryType 'OTHER' if the stored procedure has one or more output parameters. With this query type,
the stored procedure can return a result-set along with returning some values in output parameters.
Depending on the database, the stored procedure can even returning multiple result sets or a combination
of result sets as return values, and result sets as REF_CURSOR OUT parameters. </li>
</ul>
</p>
<p>
All stored procedure parameters that are not fixed, so specified in the query with a {@code ?}, should
have a corresponding IParameter entry. Output parameters should have {@code mode="OUTPUT"}, or
{@code mode="INOUT"} depending on how the stored procedure is defined.
</p>
<p>
<h3>Sample Output for queryType=OTHER</h3>
<h4>Basic Example with Only Simple Output Parameters</h4>
<code><pre>
<resultset>
<result param="r1" type="STRING">MESSAGE-CONTENTS</result>
<result param="r2" type="STRING">E</result>
</resultset>
</pre></code>
<h4>Example with Resultset and Simple Output Parameters</h4>
<code><pre>
<resultset>
<result resultNr="1">
<fielddefinition>
<field name="FIELDNAME"
type="columnType"
columnDisplaySize=""
precision=""
scale=""
isCurrency=""
columnTypeName=""
columnClassName=""/>
<field ...../>
</fielddefinition>
<rowset>
<row number="0">
<field name="TKEY">MSG-ID</field>
<field name="TCHAR">E</field>
<field name="TMESSAGE">MESSAGE-CONTENTS</field>
<field name="TCLOB" null="true"/>
<field name="TBLOB" null="true"/>
</row>
<row number="1" ...../>
</rowset>
</result>
<result param="count" type="INTEGER">5</result>
</resultset>
</pre></code>
<h4>Example with Simple and Cursor Output Parameters</h4>
<code><pre>
<resultset>
<result param="count" type="INTEGER">5</result>
<result param="cursor1" type="LIST">
<fielddefinition>
<field name="FIELDNAME"
type="columnType"
columnDisplaySize=""
precision=""
scale=""
isCurrency=""
columnTypeName=""
columnClassName=""/>
<field ...../>
</fielddefinition>
<rowset>
<row number="0">
<field name="TKEY">MSG-ID</field>
<field name="TCHAR">E</field>
<field name="TMESSAGE">MESSAGE-CONTENTS</field>
<field name="TCLOB" null="true"/>
<field name="TBLOB" null="true"/>
</row>
<row number="1" ..... />
</rowset>
</result>
</resultset>
</pre></code>
</p>
<p><em>NOTE:</em> Support for stored procedures is currently experimental and changes in the currently produced output-format
are expected.</p>Sender that sends a message via a WebService.XCom client voor het versturen van files via XCom.Sender for transferring files using the XFB protocol. Assumes sender input is local filename.
<br/>
Some comments from Richard Maddox (FTO) about UNIX File permissions:
<br/>
<br/>
In case of AIX or SUN systems we advise the following user and directory permissions:
<br/>
<br/>
SENDING CFT:
<br/>
- App_user must have secondary group: xfbgw
<br/>
- Folder should have ownership: app_user:xfbgw (owner:group)
<br/>
- Folder should have access rights: 770 (rwx.rwx.---) so nobody other then app_user and group xfbgw can do something in this folder
<br/>
- Folder should have SGID bit set so that all files what is copied to this folder get group ownership xfbgw
<br/>
- send file must have rights 660 after putting the file in the send directory.
<br/>
<br/>
RECEIVING CFT:
<br/>
- App_user (the application user of customer) should have secondary group: xfbgw
<br/>
- Folder should have ownership: app_user:xfbgw (owner:group)
<br/>
- Folder should have access rights: 770 (rwx.rwx.---) so nobody other then app_user and group xfbgw can do something in this folder
<br/>
- Folder should have SGID bit set, so that all files what is copied to this folder get group ownership xfbgw
<br/>
<br/>
There are of course more solutions to get the job done, but this is the solution we can guarantee.Sender for browsing and removing queue messages (with input and output in a XML message).
<p>
When input root element is <code>browse</code> all queue messages are returned.
</p>
<p>
When input root element is <code>remove</code> all queue messages are removed.
</p>
<p>
<b>example (input):</b>
<code>
<pre>
<browse>
<jmsRealm>qcf</jmsRealm>
<destinationName>jms/GetPolicyDetailsRequest</destinationName>
<destinationType>QUEUE</destinationType>
</browse>
</pre>
</code>
</p>
<p>
<b>example (browse output):</b>
<code>
<pre>
<result>
<items count="2">
<item>
<timestamp>Thu Nov 20 13:36:31 CET 2014</timestamp>
<messageId>ID:LPAB00000003980-61959-1416486781822-3:5:33:1:1</messageId>
<correlationId>...</correlationId>
<message><![CDATA[...]]></message>
</item>
<item>
<timestamp>Thu Dec 12 11:59:22 CET 2014</timestamp>
<messageId>ID:LPAB00000003980-58359-1721486799722-3:4:19:1:1</messageId>
<correlationId>...</correlationId>
<message><![CDATA[...]]></message>
</item>
</items>
</result>
</pre>
</code>
</p>
<p>
<b>example (remove output):</b>
<code>
<pre>
<result>
<itemsRemoved>2</itemsRemoved>
</result>
</pre>
</code>
</p>QuerySender that transforms the input message to a query.
<br/><code><pre>
select
delete
insert
update - tableName
- columns [0..1] - column [1..n] - name
- value [0..1]
- type [0..1] one of {string;function;number;datetime;blob;clob;xmldatetime}, string by default
- decimalSeparator [0..1] only applicable for type=number
- groupingSeparator [0..1] only applicable for type=number
- formatString [0..1] only applicable for type=datetime, yyyy-MM-dd HH:mm:ss.SSS by default
- where [0..1]
- order [0..1]
<br/>
alter - sequenceName
- startWith
<br/>
sql - type [0..1] one of {select;ddl;other}, other by default
- query
<br/>
</pre></code><br/>Sender that validates the input message against a XML Schema.
N.B. noNamespaceSchemaLocation may contain spaces, but not if the schema is stored in a .jar or .zip file on the class path.Perform an XSLT transformation with a specified stylesheet or XPath-expression.Sender that writes an entry to a ZipStream, similar to ZipWriterPipe with action='write'.
Filename and contents are taken from parameters. If one of the parameters is not present, the input message
is used for either filename or contents.ESB (Enterprise Service Bus) extension of JmsTransactionalStorage.
<p>
Depending on the <code>type</code> of the <code>TransactionalStorage</code>
one of the following messages is sent:
<ul>
<li><code>errorStore</code>:
ESB.Infrastructure.US.Log.BusinessLog.2.ExceptionLog.1.Action</li>
<li><code>messageLog</code>:
ESB.Infrastructure.US.Log.BusinessLog.2.AuditLog.1.Action</li>
</ul>
</p>
<p>
<b>Configuration </b><i>(where deviating from
JmsTransactionalStorage)</i><b>:</b>
<table border="1">
<tr>
<th>attributes</th>
<th>description</th>
<th>default</th>
</tr>
</table>
</p>Implements a message log (<code>JdbcMessageLog</code>) or error store (<code>JdbcErrorStorage</code>) that uses database
table IBISSTORE. A <code>MessageStoreSender</code> and <code>MessageStoreListener</code>
pair implicitly includes a message log and an error store.
If you have a <code>MessageStoreSender</code> and <code>MessageStoreListener</code>
pair it is superfluous to add a <code>JdbcMessageLog</code> or <code>JdbcErrorStorage</code>
within the same sender pipe or the same receiver.
<br/><br/>
<b>Message log:</b> A message log writes messages in persistent storage for logging purposes.
When a message log appears in a receiver, it also ensures that the same message is only processed
once, even if a related pushing listener receives the same message multiple times.
<br/><br/>
<b>Error store:</b> Appears in a receiver or sender pipe to store messages that could not be processed.
Storing a message in the error store is the last resort of the Frank!Framework. Many types of listeners and senders
offer a retry mechanism. Only if several tries have failed, then an optional transaction is not rolled
back and the message is stored in the error store. Users can retry messages in an error store using the Frank!Console. When
this is done, the message is processed in the same way as messages received from the original source.
<br/><br/>
How does a message log or error store see duplicate messages? The message log or error store
always appears in combination with a sender or listener. This sender or listener determines
a key based on the sent or received message. Messages with the same key are considered to
be the same.
<br/><br/>
Storage structure is defined in /IAF_util/IAF_DatabaseChangelog.xml. If these database objects do not exist,
the Frank!Framework will try to create them.
<br/><br/>
N.B. Note on using XA transactions:
If transactions are used on Oracle, make sure that the database user can access the table SYS.DBA_PENDING_TRANSACTIONS.
If not, transactions present when the server goes down cannot be properly recovered, resulting in exceptions like:
<pre>
The error code was XAER_RMERR. The exception stack trace follows: javax.transaction.xa.XAException
at oracle.jdbc.xa.OracleXAResource.recover(OracleXAResource.java:508)
</pre>Implements a message log (<code>JmsMessageLog</code>) or error store (<code>JmsErrorStorage</code>) that uses JMS technology.
<br/><br/>
<b>Message log:</b> A message log writes messages in persistent storage for logging purposes.
When a message log appears in a receiver, it also ensures that the same message is only processed
once, even if a related pushing listener receives the same message multiple times.
<br/><br/>
<b>Error store:</b> Appears in a receiver or sender pipe to store messages that could not be processed.
Storing a message in the error store is the last resort of the Frank!Framework. Many types of listeners and senders
offer a retry mechanism. Only if several tries have failed, then an optional transaction is not rolled
back and the message is stored in the error store. Users can retry messages in an error store using the Frank!Console. When
this is done, the message is processed in the same way as messages received from the original source.
<br/><br/>
How does a message log or error store see duplicate messages? The message log or error store
always appears in combination with a sender or listener. This sender or listener determines
a key based on the sent or received message. Messages with the same key are considered to
be the same.Optional identifier for this storage, to be able to share the physical storage between a number of receivers and pipes.Possible values are <code>E</code> (error store), <code>M</code> (message store), <code>L</code> (message log for Pipe) or <code>A</code> (message log for Receiver).<br/>
Receiver will always set type to <code>E</code> for errorStorage and always set type to <code>A</code> for messageLog. SenderPipe will set type to <code>L</code> for messageLog (when type isn't specified).<br/>
See MessageStoreSender for type <code>M</code>. Default: <code>E</code> for errorStorage on Receiver<br/><code>A</code> for messageLog on Receiver<br/><code>L</code> for messageLog on PipeTimeout <i>in milliseconds</i> for receiving a message from the queue Default: 3000Regular expression to mask strings in the errorStore/logStore.
Every character between to the strings in this expression will be replaced by a '*'.
<br/>
For example, the regular expression (?<=<party>).*?(?=</party>) will replace every
character between keys <party> and </party>
<br/>
When no hideRegex is configured on the errorStore / logStore but is configured on the org.frankframework.receivers.Receiver#setHideRegex(String),
then the Receiver's hideRegex is used for the errorStore / logStore.(Only used when hideRegex is not empty) Specifies the way to hide Default: ALLESB (Enterprise Service Bus) extension of JmsTransactionalStorage.
<p>
Depending on the <code>type</code> of the <code>TransactionalStorage</code>
one of the following messages is sent:
<ul>
<li><code>errorStore</code>:
ESB.Infrastructure.US.Log.BusinessLog.2.ExceptionLog.1.Action</li>
<li><code>messageLog</code>:
ESB.Infrastructure.US.Log.BusinessLog.2.AuditLog.1.Action</li>
</ul>
</p>
<p>
<b>Configuration </b><i>(where deviating from
JmsTransactionalStorage)</i><b>:</b>
<table border="1">
<tr>
<th>attributes</th>
<th>description</th>
<th>default</th>
</tr>
</table>
</p>Implements a message log (<code>JdbcMessageLog</code>) or error store (<code>JdbcErrorStorage</code>) that uses database
table IBISSTORE. A <code>MessageStoreSender</code> and <code>MessageStoreListener</code>
pair implicitly includes a message log and an error store.
If you have a <code>MessageStoreSender</code> and <code>MessageStoreListener</code>
pair it is superfluous to add a <code>JdbcMessageLog</code> or <code>JdbcErrorStorage</code>
within the same sender pipe or the same receiver.
<br/><br/>
<b>Message log:</b> A message log writes messages in persistent storage for logging purposes.
When a message log appears in a receiver, it also ensures that the same message is only processed
once, even if a related pushing listener receives the same message multiple times.
<br/><br/>
<b>Error store:</b> Appears in a receiver or sender pipe to store messages that could not be processed.
Storing a message in the error store is the last resort of the Frank!Framework. Many types of listeners and senders
offer a retry mechanism. Only if several tries have failed, then an optional transaction is not rolled
back and the message is stored in the error store. Users can retry messages in an error store using the Frank!Console. When
this is done, the message is processed in the same way as messages received from the original source.
<br/><br/>
How does a message log or error store see duplicate messages? The message log or error store
always appears in combination with a sender or listener. This sender or listener determines
a key based on the sent or received message. Messages with the same key are considered to
be the same.
<br/><br/>
Storage structure is defined in /IAF_util/IAF_DatabaseChangelog.xml. If these database objects do not exist,
the Frank!Framework will try to create them.
<br/><br/>
N.B. Note on using XA transactions:
If transactions are used on Oracle, make sure that the database user can access the table SYS.DBA_PENDING_TRANSACTIONS.
If not, transactions present when the server goes down cannot be properly recovered, resulting in exceptions like:
<pre>
The error code was XAER_RMERR. The exception stack trace follows: javax.transaction.xa.XAException
at oracle.jdbc.xa.OracleXAResource.recover(OracleXAResource.java:508)
</pre>Implements a message log (<code>JmsMessageLog</code>) or error store (<code>JmsErrorStorage</code>) that uses JMS technology.
<br/><br/>
<b>Message log:</b> A message log writes messages in persistent storage for logging purposes.
When a message log appears in a receiver, it also ensures that the same message is only processed
once, even if a related pushing listener receives the same message multiple times.
<br/><br/>
<b>Error store:</b> Appears in a receiver or sender pipe to store messages that could not be processed.
Storing a message in the error store is the last resort of the Frank!Framework. Many types of listeners and senders
offer a retry mechanism. Only if several tries have failed, then an optional transaction is not rolled
back and the message is stored in the error store. Users can retry messages in an error store using the Frank!Console. When
this is done, the message is processed in the same way as messages received from the original source.
<br/><br/>
How does a message log or error store see duplicate messages? The message log or error store
always appears in combination with a sender or listener. This sender or listener determines
a key based on the sent or received message. Messages with the same key are considered to
be the same.ErrorMessageFormatter that returns a fixed message with replacements.ErrorMessageFormatter that returns a soap fault message.Applies a XSLT-stylesheet to the standard error generated by an ErrorMessageFormatter.
If the transformation does not succeed, this 'standard' error message is returned and an exception is logged.
Hint: use <code>xpathExression="/errorMessage/@message"</code> for a single compact string as errormessage.returned messagename of the file containing the result messageURL to the stylesheet used to transform the output of the standard ErrorMessageFormatterxPathExpression to use for transformationExtension to WsdlXmlValidator for API Management.
The SOAP header can only contain the following schema (or it's empty):
<table border="1">
<tr><th>element</th><th>level</th><th>mandatory</th></tr>
<tr><td>MessageHeader</td><td>0</td><td>yes</td></tr>
<tr><td>xmlns="http://api.nn.nl/MessageHeader"</td><td> </td><td>yes</td></tr>
<tr><td>From</td><td>1</td><td>no</td></tr>
<tr><td>HeaderFields</td><td>1</td><td>yes</td></tr>
<tr><td>ConversationId</td><td>2</td><td>yes</td></tr>
</table>XmlValidator that will automatically add the SOAP envelope XSD and the ESB XSD (e.g. a CommonMessageHeader.xsd)
to the set of XSDs used for validation.FxF XML validator to be used with FxF3. When receiving files
(direction=receive) the message is validated against the
OnCompletedTransferNotify WSDL (a P2P connection, hence same WSDL (provided
by Tibco) for all queues (every Ibis receiving FxF files has it's own
queue)). When sending files (direction=send) the message is validated against
the StartTransfer WSDL (ESB service provided by Tibco).<code>Pipe</code> that validates the XML or JSON input message against a XML Schema and returns either XML or JSON.Pipe that validates the input message against a JSON Schema.XmlValidator that will automatically add the SOAP envelope XSD to the set of XSD's used for validation.
Before the <code>outputSoapBody</code> attribute was introduced, two validators were used for a request-reply pattern (an inputValidator for the request and an outputValidator for the reply).
These inputValidator and outputValidator were identical except for the child element of the SOAP body. Because validators use relatively a lot of memory, the <code>outputSoapBody</code> attribute was added which replaces the outputValidator.
Both the request and the reply are then validated by the inputValidator.
<p>To generate a wsdl with a soap action included one of the following properties must be set to the expected soapAction</p>
<table border="1">
<tr><td>wsdl.${adapterName}.${listenerName}.soapAction</td></tr>
<tr><td>wsdl.${adapterName}.soapAction</td></tr>
<tr><td>wsdl.soapAction</td></tr>
</table>XmlValidator that will read the XSD's to use from a WSDL. As it extends the
SoapValidator is will also add the SOAP envelope XSD.Pipe that validates the input message against an XML Schema.<code>Pipe</code> that checks the well-formedness of the input message.
If <code>root</code> is given then this is also checked.indicates whether the message is multipart/form-data. If so, the wsdl only represents the first part, other parts are attachments. This attribute is only used for generating the 'real' wsdl which is available in the ibis console (../rest/webservices) Default: falseThe functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward.The WSDL to read the XSDs fromName of the child element of the SOAP body, or a comma separated list of names to choose from (only one is allowed) (WSDL generator will use the first element) (use empty value to allow an empty SOAP body, for example to allow element x and an empty SOAP body use: x,). In case the request contains SOAPAction header and the WSDL contains an element specific to that SOAPAction, it will use that element as SOAP body.Pairs of URI references which will be added to the WSDLCreates <code>schemaLocation</code> attribute based on the WSDL and replaces the namespace of the soap body elementCharacterset used for reading file, only used when <code>validateFile</code> is <code>true</code> Default: utf-8The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward.Name of the child element of the SOAP body, or a comma separated list of names to choose from (only one is allowed) (wsdl generator will use the first element) (use empty value to allow an empty soap body, for example to allow element x and an empty soap body use: x,)Characterset used for reading file, only used when <code>validateFile</code> is <code>true</code> Default: utf-8The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward.Only for JSON input: namespace of the resulting XML. Need only be specified when the namespace of root name is ambiguous in the schemaDefault format of the result, that is used if the format cannot be found from outputFormatSessionKey or from inputFormatSessionKey (when validating responses and autoFormat=true) Default: XMLSession key to retrieve outputFormat from Default: outputFormatSession key to store the inputFormat in, to be able to set the outputformat when autoFormat=true. Can also be used to pass the value of an HTTP Accept header, to obtain a properly formatted response Default: Json2XmlValidator.inputFormat <name of the pipe>If true, the format on 'output' is set to the same as the format of the input message on 'input'. The format of the input message is stored in and retrieved from the session variable specified by outputFormatSessionKey Default: trueIf true assume arrays in JSON do not have the element containers like in XML Default: trueIf true check that incoming JSON adheres to the specified syntax (compact or full), otherwise both types are accepted for conversion from JSON to XML Default: falseIf true, assume that JSON contains/must contain a root element Default: falseIf true, and converting from JSON to XML, parameter substitutions are searched for optional sub elements too. By default, only mandatory elements are searched for parameter substitutions. N.B. Currently this option might cause problems. Please try using more qualified parameters names (using '/') first Default: falseIf true, and converting from JSON to XML, elements in JSON that are not found in the XML Schema are ignored Default: falseIf true, an exception is thrown when a wildcard is found in the XML Schema when parsing an object. This often indicates that an element is not properly typed in the XML Schema, and could lead to ambuigities. Default: trueIf true, all XML is allowed to be without namespaces. If no namespaces are detected (by the presence of the string 'xmlns') in the XML, the root namespace is added to the XML Default: falseIf true, all XML that is generated is without a namespace set Default: falseIf true, and converting to or from JSON, then the message root is the only rootValidation, ignoring root validations like for SOAP envelope and header set by descender classes like SoapValidator Default: trueAllow JSON input Default: trueThe filename of the schema on the classpath. It is not possible to specify a namespace using this attribute. (effectively the same as noNamespaceSchemaLocation)
An example value would be "xml/xsd/GetPartyDetail.xsd".
The value of the schema attribute is only used if the schemaLocation attribute and the noNamespaceSchemaLocation are not set.Name of the root element, or a comma separated list of element names. The validation fails if the root element is not present in the list. N.B. for WSDL generation only the first element is usedCharacterset used for reading file, only used when <code>validateFile</code> is <code>true</code> Default: utf-8Ignore namespaces in the input message which are unknown Default: true when <code>schema</code> or <code>noNamespaceSchemaLocation</code> is used, false otherwiseThe functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward.Name of the root elementName of the response root elementThe functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward.If set, the processing continues directly at the forward of this pipe, without executing the pipe itself, if the input is empty Default: falseIf set, this pipe is only executed when the value of parameter with name <code>ifParam</code> equals <code>ifValue</code> (otherwise this pipe is skipped)See <code>ifParam</code>Key of session variable to check if action must be executed. The pipe is only executed if the session variable exists and is not nullValue of session variable 'onlyIfSessionKey' to check if action must be executed. The pipe is only executed if the session variable has the specified valueKey of session variable to check if action must be executed. The pipe is not executed if the session variable exists and is not nullValue of session variable 'unlessSessionKey' to check if action must be executed. The pipe is not executed if the session variable has the specified valueOnly used when <code>mode=reg</code>!</b> Sets the Common Message Header version. 1 or 2 Default: 1either 3.1 or 3.2 Default: 3.1The JSON Schema to validate toPrefix to element name to find subschema in schema Default: /definitions/If set: key of session variable to store reasons of mis-validation in Default: failureReasonname of the root elementThe functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward.Extension to WsdlXmlValidator for API Management.
The SOAP header can only contain the following schema (or it's empty):
<table border="1">
<tr><th>element</th><th>level</th><th>mandatory</th></tr>
<tr><td>MessageHeader</td><td>0</td><td>yes</td></tr>
<tr><td>xmlns="http://api.nn.nl/MessageHeader"</td><td> </td><td>yes</td></tr>
<tr><td>From</td><td>1</td><td>no</td></tr>
<tr><td>HeaderFields</td><td>1</td><td>yes</td></tr>
<tr><td>ConversationId</td><td>2</td><td>yes</td></tr>
</table>XmlValidator that will automatically add the SOAP envelope XSD and the ESB XSD (e.g. a CommonMessageHeader.xsd)
to the set of XSDs used for validation.FxF XML validator to be used with FxF3. When receiving files
(direction=receive) the message is validated against the
OnCompletedTransferNotify WSDL (a P2P connection, hence same WSDL (provided
by Tibco) for all queues (every Ibis receiving FxF files has it's own
queue)). When sending files (direction=send) the message is validated against
the StartTransfer WSDL (ESB service provided by Tibco).<code>Pipe</code> that validates the XML or JSON input message against a XML Schema and returns either XML or JSON.Pipe that validates the input message against a JSON Schema.XmlValidator that will automatically add the SOAP envelope XSD to the set of XSD's used for validation.
Before the <code>outputSoapBody</code> attribute was introduced, two validators were used for a request-reply pattern (an inputValidator for the request and an outputValidator for the reply).
These inputValidator and outputValidator were identical except for the child element of the SOAP body. Because validators use relatively a lot of memory, the <code>outputSoapBody</code> attribute was added which replaces the outputValidator.
Both the request and the reply are then validated by the inputValidator.
<p>To generate a wsdl with a soap action included one of the following properties must be set to the expected soapAction</p>
<table border="1">
<tr><td>wsdl.${adapterName}.${listenerName}.soapAction</td></tr>
<tr><td>wsdl.${adapterName}.soapAction</td></tr>
<tr><td>wsdl.soapAction</td></tr>
</table>XmlValidator that will read the XSD's to use from a WSDL. As it extends the
SoapValidator is will also add the SOAP envelope XSD.Pipe that validates the input message against an XML Schema.<code>Pipe</code> that checks the well-formedness of the input message.
If <code>root</code> is given then this is also checked.Extension to SoapWrapperPipe for API Management.
<p>
<b>Configuration </b><i>(where deviating from SoapWrapperPipe)</i><b>:</b>
<table border="1">
<tr><th>attributes</th><th>description</th><th>default</th></tr>
<tr><td>soapHeaderSessionKey</td><td>if direction=<code>wrap</code>: </td><td>soapHeader</td></tr>
<tr><td>soapHeaderStyleSheet</td><td>if direction=<code>wrap</code>: </td><td>/xml/xsl/api/soapHeader.xsl</td></tr>
</table>
</p><p>
<b>/xml/xsl/api/soapHeader.xsl:</b>
<table border="1">
<tr><th>element</th><th>level</th><th>value</th></tr>
<tr><td>MessageHeader</td><td>0</td><td><code>MessageHeader</code> is only created when $conversationId is filled (otherwise skipped)</td></tr>
<tr><td> </td><td> </td><td>xmlns=$namespace</td></tr>
<tr><td>From</td><td>1</td><td><code>From</code> is only created when $from_in is filled (otherwise skipped) and it's created with the value of $from_out</td></tr>
<tr><td>HeaderFields</td><td>1</td><td> </td></tr>
<tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr>
</table>
<b>Parameters:</b>
<table border="1">
<tr><th>name</th><th>default</th></tr>
<tr><td>namespace</td><td>"http://api.nn.nl/MessageHeader"</td></tr>
<tr><td>from_in</td><td>if applicable, copied from the original (received) SOAP Header</td></tr>
<tr><td>from_out</td><td>property 'instance.name'</td></tr>
<tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr>
</table>
</p>Extension to SoapWrapperPipe for separate modes.
<p><b>Configuration </b><i>(where deviating from SoapWrapperPipe)</i><b>:</b>
<table border="1">
<tr><th>attributes</th><th>description</th><th>default</th></tr>
<tr><td>mode</td><td>either <code>i2t</code> (ifsa2tibco), <code>reg</code> (regular) or <code>bis</code> (Business Integration Services)</td><td>reg</td></tr>
<tr><td>cmhVersion</td><td>(only used when <code>mode=reg</code>) Common Message Header version (1 or 2)</td><td>1 when <code>mode=reg</code>, 0 otherwise</td></tr>
<tr><td>soapHeaderSessionKey</td><td>if direction=<code>unwrap</code>: </td><td>soapHeader</td></tr>
<tr><td>soapHeaderStyleSheet</td><td>if direction=<code>wrap</code> and mode=<code>i2t</code>:</td><td>/xml/xsl/esb/soapHeader.xsl</td></tr>
<tr><td></td><td>if direction=<code>wrap</code> and mode=<code>reg</code>:</td><td>TODO (for now identical to the "<code>i2t</code>" SOAP Header)</td></tr>
<tr><td></td><td>if direction=<code>wrap</code> and mode=<code>bis</code>:</td><td>/xml/xsl/esb/bisSoapHeader.xsl</td></tr>
<tr><td>soapBodyStyleSheet</td><td>if direction=<code>wrap</code> and mode=<code>reg</code>:</td><td>/xml/xsl/esb/soapBody.xsl</td></tr>
<tr><td></td><td>if direction=<code>wrap</code> and mode=<code>bis</code>:</td><td>/xml/xsl/esb/bisSoapBody.xsl</td></tr>
<tr><td>addOutputNamespace</td><td>(only used when <code>direction=wrap</code>) when <code>true</code>, <code>outputNamespace</code> is automatically set using the parameters (if $messagingLayer='P2P' then 'http://nn.nl/XSD/$businessDomain/$applicationName/$applicationFunction' else is serviceContext is not empty 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceContext/$serviceContextVersion/$operationName/$operationVersion' else 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceVersion/$operationName/$operationVersion')</td><td><code>false</code></td></tr>
<tr><td>retrievePhysicalDestination</td><td>(only used when <code>direction=wrap</code>) when <code>true</code>, the physical destination is retrieved from the queue instead of using the parameter <code>destination</code></td><td><code>true</code></td></tr>
<tr><td>useFixedValues</td><td>If <code>true</code>, the fields CorrelationId, MessageId and Timestamp will have a fixed value (for testing purposes only)</td><td><code>false</code></td></tr>
<tr><td>fixResultNamespace</td><td>(only used when <code>direction=wrap</code>) when <code>true</code> and the Result tag already exists, the namespace is changed</td><td><code>false</code></td></tr>
<tr><td>p2pAlias</td><td>When the messagingLayer part of the destination has this value interpret it as P2P</td><td><code></code></td></tr>
<tr><td>esbAlias</td><td>When the messagingLayer part of the destination has this value interpret it as ESB</td><td><code></code></td></tr>
</table></p>
<p>
<b>/xml/xsl/esb/soapHeader.xsl:</b>
<table border="1">
<tr><th>element</th><th>level</th><th>value</th></tr>
<tr><td>MessageHeader</td><td>0</td><td> </td></tr>
<tr><td> </td><td> </td><td>xmlns=$namespace</td></tr>
<tr><td>From</td><td>1</td><td> </td></tr>
<tr><td>Id</td><td>2</td><td>$fromId</td></tr>
<tr><td>To</td><td>1</td><td> </td></tr>
<tr><td>Location</td><td>2</td><td>if $messagingLayer='P2P' then<br/> $messagingLayer.$businessDomain.$applicationName.$applicationFunction.$paradigm<br/>else if $serviceContext is not empty then<br/> $messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceContext.$serviceContextVersion.$operationName.$operationVersion.$paradigm<br/>else<br/> $messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceVersion.$operationName.$operationVersion.$paradigm</td></tr>
<tr><td>HeaderFields</td><td>1</td><td> </td></tr>
<tr><td>CPAId</td><td>2</td><td>$cpaId</td></tr>
<tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr>
<tr><td>CorrelationId</td><td>2</td><td>$correlationId (if empty then skip this element)</td></tr>
<tr><td>MessageId</td><td>2</td><td>$messageId</td></tr>
<tr><td>ExternalRefToMessageId</td><td>2</td><td>$externalRefToMessageId (if empty then skip this element)</td></tr>
<tr><td>Timestamp</td><td>2</td><td>$timestamp</td></tr>
<tr><td>TransactionId</td><td>2</td><td>$transactionId (only used when $mode=reg and $cmhVersion=2; if empty then skip this element)</td></tr>
<tr><td>Service</td><td>1</td><td> </td></tr>
<tr><td>Name</td><td>2</td><td>$serviceName</td></tr>
<tr><td>Context</td><td>2</td><td>$serviceContext</td></tr>
<tr><td>Action</td><td>2</td><td> </td></tr>
<tr><td>Paradigm</td><td>3</td><td>$paradigm</td></tr>
<tr><td>Name</td><td>3</td><td>$operationName</td></tr>
<tr><td>Version</td><td>3</td><td>$operationVersion</td></tr>
</table>
<b>Parameters:</b>
<table border="1">
<tr><th>name</th><th>default</th></tr>
<tr><td>mode</td><td>copied from <code>mode</code></td></tr>
<tr><td>cmhVersion</td><td>copied from <code>cmhVersion</code></td></tr>
<tr><td>namespace</td><td>"http://nn.nl/XSD/Generic/MessageHeader/2" (only when $mode=reg and $cmhVersion=2)<br/>"http://nn.nl/XSD/Generic/MessageHeader/1" (otherwise)</td></tr>
<tr><td>businessDomain</td><td> </td></tr>
<tr><td>serviceName</td><td> </td></tr>
<tr><td>serviceContext</td><td> </td></tr>
<tr><td>service(Context)Version</td><td>1</td></tr>
<tr><td>operationName</td><td> </td></tr>
<tr><td>operationVersion</td><td>1</td></tr>
<tr><td>paradigm</td><td> </td></tr>
<tr><td>applicationName</td><td> </td></tr>
<tr><td>applicationFunction</td><td> </td></tr>
<tr><td>messagingLayer</td><td>ESB</td></tr>
<tr><td>serviceLayer</td><td> </td></tr>
<tr><td>destination</td><td>if not empty this parameter contains the preceding parameters as described in 'Location' in the table above</td></tr>
<tr><td>fromId</td><td>property 'instance.name'</td></tr>
<tr><td>cpaId</td><td>if applicable, copied from the original (received) SOAP Header, else 'n/a'</td></tr>
<tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header, else parameter pattern '{hostname}_{uid}'</td></tr>
<tr><td>messageId</td><td>parameter pattern '{hostname}_{uid}'</td></tr>
<tr><td>correlationId</td><td>if $paradigm equals 'Response' then copied from MessageId in the original (received) SOAP Header</td></tr>
<tr><td>externalRefToMessageId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr>
<tr><td>timestamp</td><td>parameter pattern '{now,date,yyyy-MM-dd'T'HH:mm:ss}'</td></tr>
<tr><td>transactionId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr>
</table>
</p>
<p>
<b>/xml/xsl/esb/bisSoapHeader.xsl:</b>
<table border="1">
<tr><th>element</th><th>level</th><th>value</th></tr>
<tr><td>MessageHeader</td><td>0</td><td> </td></tr>
<tr><td> </td><td> </td><td>xmlns=$namespace</td></tr>
<tr><td>From</td><td>1</td><td> </td></tr>
<tr><td>Id</td><td>2</td><td>$fromId</td></tr>
<tr><td>HeaderFields</td><td>1</td><td> </td></tr>
<tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr>
<tr><td>MessageId</td><td>2</td><td>$messageId</td></tr>
<tr><td>ExternalRefToMessageId</td><td>2</td><td>$externalRefToMessageId (if empty then skip this element)</td></tr>
<tr><td>Timestamp</td><td>2</td><td>$timestamp</td></tr>
</table>
<b>Parameters:</b>
<table border="1">
<tr><th>name</th><th>default</th></tr>
<tr><td>namespace</td><td>"http://www.ing.com/CSP/XSD/General/Message_2"</td></tr>
<tr><td>fromId</td><td>property 'instance.name'</td></tr>
<tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header, else parameter pattern '{hostname}_{uid}'</td></tr>
<tr><td>messageId</td><td>parameter pattern '{hostname}_{uid}'</td></tr>
<tr><td>externalRefToMessageId</td><td>if applicable, copied from MessageId in the original (received) SOAP Header</td></tr>
<tr><td>timestamp</td><td>parameter pattern '{now,date,yyyy-MM-dd'T'HH:mm:ss}'</td></tr>
</table>
</p>
<p>
<b>/xml/xsl/esb/soapBody.xsl:</b>
<table border="1">
<tr><th>element</th><th>level</th><th>value</th></tr>
<tr><td>[Payload]</td><td>0</td><td>if $errorCode is empty then the complete payload will be copied and if not already existing a Result tag will be added<br/>else only the root tag will be copied</td></tr>
<tr><td>Result</td><td>1</td><td>this element will be the last child in the copied root tag (only applicable for $paradigm 'Response'); if $errorCode is empty and a Result tag already exists then skip this element including its child elements</td></tr>
<tr><td> </td><td> </td><td>xmlns=$namespace</td></tr>
<tr><td>Status</td><td>2</td><td>if $errorCode is empty then 'OK'<br/>else 'ERROR'</td></tr>
<tr><td>ErrorList</td><td>2</td><td>if $errorCode is empty then skip this element including its child elements</td></tr>
<tr><td>Error</td><td>3</td><td> </td></tr>
<tr><td>Code</td><td>4</td><td>$errorCode</td></tr>
<tr><td>Reason</td><td>4</td><td>if $errorReason is not empty then $errorReason<br/>else it will be derived from $errorCode:
<table border="1">
<tr><th>errorCode</th><th>errorText</th></tr>
<tr><td>ERR6002</td><td>Service Interface Request Time Out</td></tr>
<tr><td>ERR6003</td><td>Invalid Request Message</td></tr>
<tr><td>ERR6004</td><td>Invalid Backend system response</td></tr>
<tr><td>ERR6005</td><td>Backend system failure response</td></tr>
<tr><td>ERR6999</td><td>Unspecified Errors</td></tr>
</table>
</td></tr>
<tr><td>Service</td><td>4</td><td> </td></tr>
<tr><td>Name</td><td>5</td><td>$serviceName</td></tr>
<tr><td>Context</td><td>5</td><td>$serviceContext</td></tr>
<tr><td>Action</td><td>5</td><td> </td></tr>
<tr><td>Paradigm</td><td>6</td><td>$paradigm</td></tr>
<tr><td>Name</td><td>6</td><td>$operationName</td></tr>
<tr><td>Version</td><td>6</td><td>$operationVersion</td></tr>
<tr><td>DetailList</td><td>4</td><td>if $errorDetailCode is empty then skip this element including its child elements</td></tr>
<tr><td>Detail</td><td>5</td><td> </td></tr>
<tr><td>Code</td><td>6</td><td>$errorDetailCode</td></tr>
<tr><td>Text</td><td>6</td><td>$errorDetailText (if empty then skip this element)</td></tr>
</table>
<b>Parameters:</b>
<table border="1">
<tr><th>name</th><th>default</th></tr>
<tr><td>mode</td><td>copied from <code>mode</code></td></tr>
<tr><td>cmhVersion</td><td>copied from <code>cmhVersion</code></td></tr>
<tr><td>namespace</td><td>"http://nn.nl/XSD/Generic/MessageHeader/2" (only when $mode=reg and $cmhVersion=2)<br/>"http://nn.nl/XSD/Generic/MessageHeader/1" (otherwise)</td></tr>
<tr><td>errorCode</td><td> </td></tr>
<tr><td>errorReason</td><td> </td></tr>
<tr><td>errorDetailCode</td><td> </td></tr>
<tr><td>errorDetailText</td><td> </td></tr>
<tr><td>serviceName</td><td> </td></tr>
<tr><td>serviceContext</td><td> </td></tr>
<tr><td>operationName</td><td> </td></tr>
<tr><td>operationVersion</td><td>1</td></tr>
<tr><td>paradigm</td><td> </td></tr>
<tr><td>fixResultNamespace</td><td>false</td></tr>
</table>
</p>
<p>
<b>/xml/xsl/esb/bisSoapBody.xsl:</b>
<table border="1">
<tr><th>element</th><th>level</th><th>value</th></tr>
<tr><td>[Payload]</td><td>0</td><td>if $errorCode is empty then the complete payload will be copied and if not already existing a Result tag will be added<br/>else only the root tag will be copied</td></tr>
<tr><td>Result</td><td>1</td><td>this element will be the last child in the copied root tag (only applicable for $paradigm 'Response' and 'Reply'); if $errorCode is empty and a Result tag already exists then skip this element including its child elements</td></tr>
<tr><td> </td><td> </td><td>xmlns=$namespace</td></tr>
<tr><td>Status</td><td>2</td><td>if $errorCode is empty then 'OK'<br/>else 'ERROR'</td></tr>
<tr><td>ErrorList</td><td>2</td><td>if $errorCode is empty then skip this element including its child elements</td></tr>
<tr><td>Error</td><td>3</td><td> </td></tr>
<tr><td>Code</td><td>4</td><td>$errorCode</td></tr>
<tr><td>Reason</td><td>4</td><td>if $errorReason is not empty then $errorReason<br/>else it will be derived from $errorCode:
<table border="1">
<tr><th>errorCode</th><th>errorText</th></tr>
<tr><td>ERR6002</td><td>Service Interface Request Time Out</td></tr>
<tr><td>ERR6003</td><td>Invalid Request Message</td></tr>
<tr><td>ERR6004</td><td>Invalid Backend system response</td></tr>
<tr><td>ERR6005</td><td>Backend system failure response</td></tr>
<tr><td>ERR6999</td><td>Unspecified Errors</td></tr>
</table>
</td></tr>
<tr><td>Service</td><td>4</td><td> </td></tr>
<tr><td>Name</td><td>5</td><td>$serviceName</td></tr>
<tr><td>Context</td><td>5</td><td>$serviceContext</td></tr>
<tr><td>Action</td><td>5</td><td> </td></tr>
<tr><td>Name</td><td>6</td><td>$operationName</td></tr>
<tr><td>Version</td><td>6</td><td>$operationVersion</td></tr>
<tr><td>DetailList</td><td>4</td><td>if $errorDetailCode is empty then skip this element including its child elements</td></tr>
<tr><td>Detail</td><td>5</td><td> </td></tr>
<tr><td>Code</td><td>6</td><td>$errorDetailCode</td></tr>
<tr><td>Text</td><td>6</td><td>$errorDetailText (if empty then skip this element)</td></tr>
</table>
<b>Parameters:</b>
<table border="1">
<tr><th>name</th><th>default</th></tr>
<tr><td>namespace</td><td>"http://www.ing.com/CSP/XSD/General/Message_2"</td></tr>
<tr><td>errorCode</td><td> </td></tr>
<tr><td>errorReason</td><td> </td></tr>
<tr><td>errorDetailCode</td><td> </td></tr>
<tr><td>errorDetailText</td><td> </td></tr>
<tr><td>serviceName</td><td> </td></tr>
<tr><td>serviceContext</td><td> </td></tr>
<tr><td>operationName</td><td> </td></tr>
<tr><td>operationVersion</td><td>1</td></tr>
<tr><td>paradigm</td><td> </td></tr>
</table>
</p>FxF wrapper to be used with FxF3. When receiving files (direction=unwrap)
the message handed to the pipeline is the local filename extracted from an
ESB SOAP message. When sending files (direction=wrap) input should be a local
filename which will be wrapped into an ESB SOAP message. Please note: When
writing files which need to be send through FxF they should be written to
${fxf.dir}/NNX00000/out. The property ${fxf.dir} will automatically be
available on the OTAP environment (define it in StageSpecifics_LOC.properties
only). Replace NNX00000 with the specific flowId and generate a unique
filename (files will automatically be cleaned after 30 days or any other
value specified by ${fxf.retention}).Pipe to wrap or unwrap a message from/into a SOAP Envelope.Default: wrapSoap version to use Default: auto(only used when direction=<code>wrap</code>) Namespace of the soap envelope Default: auto determined from soapVersionKey of session variable to store auto-detected soapNamespace Default: If configured as Pipeline Input Wrapper or PipeLine Output Wrapper: soapNamespaceKey of session variable to store soap header Default: If configured as Pipeline Input Wrapper and direction=<code>unwrap</code>: soapHeaderThe encodingStyle to be set in the soap headerThe default for the namespace of the message sent. Identifies the service to be called. May be overriden by an actual namespace setting in the message to be sent(only used when direction=<code>wrap</code>) Stylesheet to create the content of the soap header. As input for this stylesheet a dummy xml string is used. Note: outputType=<code>xml</code> and xsltVersion=(only used when direction=<code>wrap</code>) Stylesheet to apply to the input message. Note: outputType=<code>xml</code> and xsltVersion=2(only used when direction=<code>unwrap</code>) If <code>true</code>, namespaces (and prefixes) in the content of the soap body are removed Default: false(only used when direction=<code>unwrap</code> and <code>removeoutputnamespaces=false</code>) If <code>true</code>, unused namespaces in the content of the soap body are removed Default: true(only used when direction=<code>wrap</code>) If not empty, this namespace is added to the root element in the soap bodyIf not empty, the root element in the soap body is changed to this value(only used when direction=<code>unwrap</code>) If <code>false</code> and the soap body contains a soap fault, a PipeRunException is thrown Default: falseFor direction=<code>unwrap</code> only: if true, allow unwrapped xml too Default: falsealias used to obtain credentials for authentication to WebServiceSecurityDefault username for WebServiceSecurityDefault password for WebServiceSecurityIf true, the password is sent digested; Otherwise it is sent in clear text Default: trueFor direction=<code>wrap</code> only: When false, adds an XML declaration to the output message. Default: trueThe functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward.Default: REG<b>Only used when <code>mode=reg</code>!</b> Sets the Common Message Header version. 1 or 2 Default: 1(only used when <code>direction=wrap</code>) when <code>true</code>, <code>outputNamespace</code> is automatically set using the parameters (if $messagingLayer='P2P' then 'http://nn.nl/XSD/$businessDomain/$applicationName/$applicationFunction' else is serviceContext is not empty 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceContext/$serviceContextVersion/$operationName/$operationVersion' else 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceVersion/$operationName/$operationVersion') Default: false(only used when <code>direction=wrap</code>) when <code>true</code>, the physical destination is retrieved from the queue instead of using the parameter <code>destination</code> Default: trueIf <code>true</code>, the fields CorrelationId, MessageId and Timestamp will have a fixed value (for testing purposes only) Default: false(only used when <code>direction=wrap</code>) when <code>true</code> and the Result tag already exists, the namespace is changed Default: falseWhen the messagingLayer part of the destination has this value interpret it as P2PWhen the messagingLayer part of the destination has this value interpret it as ESBThe flowId of the file transfer when direction=wrap. When direction=unwrap the flowId will be extracted from the incoming message and added as a sessionKey to the pipeline.specifies the output folder if transformFilename=<code>false</code> and direction=wrapwhen <code>true</code> and direction=wrap, the input which is expected to be a local filename will be transformed to the filename as known on the IUF State machine. Default: trueeither 3.1 or 3.2 Default: 3.1when set to <code>true</code>, the folder corresponding fxf.dir property will be created in case it does not exist Default: falsewhen set to <code>true</code>, ServerFileName from the input will be used as the filename Default: falseExtension to SoapWrapperPipe for API Management.
<p>
<b>Configuration </b><i>(where deviating from SoapWrapperPipe)</i><b>:</b>
<table border="1">
<tr><th>attributes</th><th>description</th><th>default</th></tr>
<tr><td>soapHeaderSessionKey</td><td>if direction=<code>wrap</code>: </td><td>soapHeader</td></tr>
<tr><td>soapHeaderStyleSheet</td><td>if direction=<code>wrap</code>: </td><td>/xml/xsl/api/soapHeader.xsl</td></tr>
</table>
</p><p>
<b>/xml/xsl/api/soapHeader.xsl:</b>
<table border="1">
<tr><th>element</th><th>level</th><th>value</th></tr>
<tr><td>MessageHeader</td><td>0</td><td><code>MessageHeader</code> is only created when $conversationId is filled (otherwise skipped)</td></tr>
<tr><td> </td><td> </td><td>xmlns=$namespace</td></tr>
<tr><td>From</td><td>1</td><td><code>From</code> is only created when $from_in is filled (otherwise skipped) and it's created with the value of $from_out</td></tr>
<tr><td>HeaderFields</td><td>1</td><td> </td></tr>
<tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr>
</table>
<b>Parameters:</b>
<table border="1">
<tr><th>name</th><th>default</th></tr>
<tr><td>namespace</td><td>"http://api.nn.nl/MessageHeader"</td></tr>
<tr><td>from_in</td><td>if applicable, copied from the original (received) SOAP Header</td></tr>
<tr><td>from_out</td><td>property 'instance.name'</td></tr>
<tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr>
</table>
</p>Extension to SoapWrapperPipe for separate modes.
<p><b>Configuration </b><i>(where deviating from SoapWrapperPipe)</i><b>:</b>
<table border="1">
<tr><th>attributes</th><th>description</th><th>default</th></tr>
<tr><td>mode</td><td>either <code>i2t</code> (ifsa2tibco), <code>reg</code> (regular) or <code>bis</code> (Business Integration Services)</td><td>reg</td></tr>
<tr><td>cmhVersion</td><td>(only used when <code>mode=reg</code>) Common Message Header version (1 or 2)</td><td>1 when <code>mode=reg</code>, 0 otherwise</td></tr>
<tr><td>soapHeaderSessionKey</td><td>if direction=<code>unwrap</code>: </td><td>soapHeader</td></tr>
<tr><td>soapHeaderStyleSheet</td><td>if direction=<code>wrap</code> and mode=<code>i2t</code>:</td><td>/xml/xsl/esb/soapHeader.xsl</td></tr>
<tr><td></td><td>if direction=<code>wrap</code> and mode=<code>reg</code>:</td><td>TODO (for now identical to the "<code>i2t</code>" SOAP Header)</td></tr>
<tr><td></td><td>if direction=<code>wrap</code> and mode=<code>bis</code>:</td><td>/xml/xsl/esb/bisSoapHeader.xsl</td></tr>
<tr><td>soapBodyStyleSheet</td><td>if direction=<code>wrap</code> and mode=<code>reg</code>:</td><td>/xml/xsl/esb/soapBody.xsl</td></tr>
<tr><td></td><td>if direction=<code>wrap</code> and mode=<code>bis</code>:</td><td>/xml/xsl/esb/bisSoapBody.xsl</td></tr>
<tr><td>addOutputNamespace</td><td>(only used when <code>direction=wrap</code>) when <code>true</code>, <code>outputNamespace</code> is automatically set using the parameters (if $messagingLayer='P2P' then 'http://nn.nl/XSD/$businessDomain/$applicationName/$applicationFunction' else is serviceContext is not empty 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceContext/$serviceContextVersion/$operationName/$operationVersion' else 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceVersion/$operationName/$operationVersion')</td><td><code>false</code></td></tr>
<tr><td>retrievePhysicalDestination</td><td>(only used when <code>direction=wrap</code>) when <code>true</code>, the physical destination is retrieved from the queue instead of using the parameter <code>destination</code></td><td><code>true</code></td></tr>
<tr><td>useFixedValues</td><td>If <code>true</code>, the fields CorrelationId, MessageId and Timestamp will have a fixed value (for testing purposes only)</td><td><code>false</code></td></tr>
<tr><td>fixResultNamespace</td><td>(only used when <code>direction=wrap</code>) when <code>true</code> and the Result tag already exists, the namespace is changed</td><td><code>false</code></td></tr>
<tr><td>p2pAlias</td><td>When the messagingLayer part of the destination has this value interpret it as P2P</td><td><code></code></td></tr>
<tr><td>esbAlias</td><td>When the messagingLayer part of the destination has this value interpret it as ESB</td><td><code></code></td></tr>
</table></p>
<p>
<b>/xml/xsl/esb/soapHeader.xsl:</b>
<table border="1">
<tr><th>element</th><th>level</th><th>value</th></tr>
<tr><td>MessageHeader</td><td>0</td><td> </td></tr>
<tr><td> </td><td> </td><td>xmlns=$namespace</td></tr>
<tr><td>From</td><td>1</td><td> </td></tr>
<tr><td>Id</td><td>2</td><td>$fromId</td></tr>
<tr><td>To</td><td>1</td><td> </td></tr>
<tr><td>Location</td><td>2</td><td>if $messagingLayer='P2P' then<br/> $messagingLayer.$businessDomain.$applicationName.$applicationFunction.$paradigm<br/>else if $serviceContext is not empty then<br/> $messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceContext.$serviceContextVersion.$operationName.$operationVersion.$paradigm<br/>else<br/> $messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceVersion.$operationName.$operationVersion.$paradigm</td></tr>
<tr><td>HeaderFields</td><td>1</td><td> </td></tr>
<tr><td>CPAId</td><td>2</td><td>$cpaId</td></tr>
<tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr>
<tr><td>CorrelationId</td><td>2</td><td>$correlationId (if empty then skip this element)</td></tr>
<tr><td>MessageId</td><td>2</td><td>$messageId</td></tr>
<tr><td>ExternalRefToMessageId</td><td>2</td><td>$externalRefToMessageId (if empty then skip this element)</td></tr>
<tr><td>Timestamp</td><td>2</td><td>$timestamp</td></tr>
<tr><td>TransactionId</td><td>2</td><td>$transactionId (only used when $mode=reg and $cmhVersion=2; if empty then skip this element)</td></tr>
<tr><td>Service</td><td>1</td><td> </td></tr>
<tr><td>Name</td><td>2</td><td>$serviceName</td></tr>
<tr><td>Context</td><td>2</td><td>$serviceContext</td></tr>
<tr><td>Action</td><td>2</td><td> </td></tr>
<tr><td>Paradigm</td><td>3</td><td>$paradigm</td></tr>
<tr><td>Name</td><td>3</td><td>$operationName</td></tr>
<tr><td>Version</td><td>3</td><td>$operationVersion</td></tr>
</table>
<b>Parameters:</b>
<table border="1">
<tr><th>name</th><th>default</th></tr>
<tr><td>mode</td><td>copied from <code>mode</code></td></tr>
<tr><td>cmhVersion</td><td>copied from <code>cmhVersion</code></td></tr>
<tr><td>namespace</td><td>"http://nn.nl/XSD/Generic/MessageHeader/2" (only when $mode=reg and $cmhVersion=2)<br/>"http://nn.nl/XSD/Generic/MessageHeader/1" (otherwise)</td></tr>
<tr><td>businessDomain</td><td> </td></tr>
<tr><td>serviceName</td><td> </td></tr>
<tr><td>serviceContext</td><td> </td></tr>
<tr><td>service(Context)Version</td><td>1</td></tr>
<tr><td>operationName</td><td> </td></tr>
<tr><td>operationVersion</td><td>1</td></tr>
<tr><td>paradigm</td><td> </td></tr>
<tr><td>applicationName</td><td> </td></tr>
<tr><td>applicationFunction</td><td> </td></tr>
<tr><td>messagingLayer</td><td>ESB</td></tr>
<tr><td>serviceLayer</td><td> </td></tr>
<tr><td>destination</td><td>if not empty this parameter contains the preceding parameters as described in 'Location' in the table above</td></tr>
<tr><td>fromId</td><td>property 'instance.name'</td></tr>
<tr><td>cpaId</td><td>if applicable, copied from the original (received) SOAP Header, else 'n/a'</td></tr>
<tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header, else parameter pattern '{hostname}_{uid}'</td></tr>
<tr><td>messageId</td><td>parameter pattern '{hostname}_{uid}'</td></tr>
<tr><td>correlationId</td><td>if $paradigm equals 'Response' then copied from MessageId in the original (received) SOAP Header</td></tr>
<tr><td>externalRefToMessageId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr>
<tr><td>timestamp</td><td>parameter pattern '{now,date,yyyy-MM-dd'T'HH:mm:ss}'</td></tr>
<tr><td>transactionId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr>
</table>
</p>
<p>
<b>/xml/xsl/esb/bisSoapHeader.xsl:</b>
<table border="1">
<tr><th>element</th><th>level</th><th>value</th></tr>
<tr><td>MessageHeader</td><td>0</td><td> </td></tr>
<tr><td> </td><td> </td><td>xmlns=$namespace</td></tr>
<tr><td>From</td><td>1</td><td> </td></tr>
<tr><td>Id</td><td>2</td><td>$fromId</td></tr>
<tr><td>HeaderFields</td><td>1</td><td> </td></tr>
<tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr>
<tr><td>MessageId</td><td>2</td><td>$messageId</td></tr>
<tr><td>ExternalRefToMessageId</td><td>2</td><td>$externalRefToMessageId (if empty then skip this element)</td></tr>
<tr><td>Timestamp</td><td>2</td><td>$timestamp</td></tr>
</table>
<b>Parameters:</b>
<table border="1">
<tr><th>name</th><th>default</th></tr>
<tr><td>namespace</td><td>"http://www.ing.com/CSP/XSD/General/Message_2"</td></tr>
<tr><td>fromId</td><td>property 'instance.name'</td></tr>
<tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header, else parameter pattern '{hostname}_{uid}'</td></tr>
<tr><td>messageId</td><td>parameter pattern '{hostname}_{uid}'</td></tr>
<tr><td>externalRefToMessageId</td><td>if applicable, copied from MessageId in the original (received) SOAP Header</td></tr>
<tr><td>timestamp</td><td>parameter pattern '{now,date,yyyy-MM-dd'T'HH:mm:ss}'</td></tr>
</table>
</p>
<p>
<b>/xml/xsl/esb/soapBody.xsl:</b>
<table border="1">
<tr><th>element</th><th>level</th><th>value</th></tr>
<tr><td>[Payload]</td><td>0</td><td>if $errorCode is empty then the complete payload will be copied and if not already existing a Result tag will be added<br/>else only the root tag will be copied</td></tr>
<tr><td>Result</td><td>1</td><td>this element will be the last child in the copied root tag (only applicable for $paradigm 'Response'); if $errorCode is empty and a Result tag already exists then skip this element including its child elements</td></tr>
<tr><td> </td><td> </td><td>xmlns=$namespace</td></tr>
<tr><td>Status</td><td>2</td><td>if $errorCode is empty then 'OK'<br/>else 'ERROR'</td></tr>
<tr><td>ErrorList</td><td>2</td><td>if $errorCode is empty then skip this element including its child elements</td></tr>
<tr><td>Error</td><td>3</td><td> </td></tr>
<tr><td>Code</td><td>4</td><td>$errorCode</td></tr>
<tr><td>Reason</td><td>4</td><td>if $errorReason is not empty then $errorReason<br/>else it will be derived from $errorCode:
<table border="1">
<tr><th>errorCode</th><th>errorText</th></tr>
<tr><td>ERR6002</td><td>Service Interface Request Time Out</td></tr>
<tr><td>ERR6003</td><td>Invalid Request Message</td></tr>
<tr><td>ERR6004</td><td>Invalid Backend system response</td></tr>
<tr><td>ERR6005</td><td>Backend system failure response</td></tr>
<tr><td>ERR6999</td><td>Unspecified Errors</td></tr>
</table>
</td></tr>
<tr><td>Service</td><td>4</td><td> </td></tr>
<tr><td>Name</td><td>5</td><td>$serviceName</td></tr>
<tr><td>Context</td><td>5</td><td>$serviceContext</td></tr>
<tr><td>Action</td><td>5</td><td> </td></tr>
<tr><td>Paradigm</td><td>6</td><td>$paradigm</td></tr>
<tr><td>Name</td><td>6</td><td>$operationName</td></tr>
<tr><td>Version</td><td>6</td><td>$operationVersion</td></tr>
<tr><td>DetailList</td><td>4</td><td>if $errorDetailCode is empty then skip this element including its child elements</td></tr>
<tr><td>Detail</td><td>5</td><td> </td></tr>
<tr><td>Code</td><td>6</td><td>$errorDetailCode</td></tr>
<tr><td>Text</td><td>6</td><td>$errorDetailText (if empty then skip this element)</td></tr>
</table>
<b>Parameters:</b>
<table border="1">
<tr><th>name</th><th>default</th></tr>
<tr><td>mode</td><td>copied from <code>mode</code></td></tr>
<tr><td>cmhVersion</td><td>copied from <code>cmhVersion</code></td></tr>
<tr><td>namespace</td><td>"http://nn.nl/XSD/Generic/MessageHeader/2" (only when $mode=reg and $cmhVersion=2)<br/>"http://nn.nl/XSD/Generic/MessageHeader/1" (otherwise)</td></tr>
<tr><td>errorCode</td><td> </td></tr>
<tr><td>errorReason</td><td> </td></tr>
<tr><td>errorDetailCode</td><td> </td></tr>
<tr><td>errorDetailText</td><td> </td></tr>
<tr><td>serviceName</td><td> </td></tr>
<tr><td>serviceContext</td><td> </td></tr>
<tr><td>operationName</td><td> </td></tr>
<tr><td>operationVersion</td><td>1</td></tr>
<tr><td>paradigm</td><td> </td></tr>
<tr><td>fixResultNamespace</td><td>false</td></tr>
</table>
</p>
<p>
<b>/xml/xsl/esb/bisSoapBody.xsl:</b>
<table border="1">
<tr><th>element</th><th>level</th><th>value</th></tr>
<tr><td>[Payload]</td><td>0</td><td>if $errorCode is empty then the complete payload will be copied and if not already existing a Result tag will be added<br/>else only the root tag will be copied</td></tr>
<tr><td>Result</td><td>1</td><td>this element will be the last child in the copied root tag (only applicable for $paradigm 'Response' and 'Reply'); if $errorCode is empty and a Result tag already exists then skip this element including its child elements</td></tr>
<tr><td> </td><td> </td><td>xmlns=$namespace</td></tr>
<tr><td>Status</td><td>2</td><td>if $errorCode is empty then 'OK'<br/>else 'ERROR'</td></tr>
<tr><td>ErrorList</td><td>2</td><td>if $errorCode is empty then skip this element including its child elements</td></tr>
<tr><td>Error</td><td>3</td><td> </td></tr>
<tr><td>Code</td><td>4</td><td>$errorCode</td></tr>
<tr><td>Reason</td><td>4</td><td>if $errorReason is not empty then $errorReason<br/>else it will be derived from $errorCode:
<table border="1">
<tr><th>errorCode</th><th>errorText</th></tr>
<tr><td>ERR6002</td><td>Service Interface Request Time Out</td></tr>
<tr><td>ERR6003</td><td>Invalid Request Message</td></tr>
<tr><td>ERR6004</td><td>Invalid Backend system response</td></tr>
<tr><td>ERR6005</td><td>Backend system failure response</td></tr>
<tr><td>ERR6999</td><td>Unspecified Errors</td></tr>
</table>
</td></tr>
<tr><td>Service</td><td>4</td><td> </td></tr>
<tr><td>Name</td><td>5</td><td>$serviceName</td></tr>
<tr><td>Context</td><td>5</td><td>$serviceContext</td></tr>
<tr><td>Action</td><td>5</td><td> </td></tr>
<tr><td>Name</td><td>6</td><td>$operationName</td></tr>
<tr><td>Version</td><td>6</td><td>$operationVersion</td></tr>
<tr><td>DetailList</td><td>4</td><td>if $errorDetailCode is empty then skip this element including its child elements</td></tr>
<tr><td>Detail</td><td>5</td><td> </td></tr>
<tr><td>Code</td><td>6</td><td>$errorDetailCode</td></tr>
<tr><td>Text</td><td>6</td><td>$errorDetailText (if empty then skip this element)</td></tr>
</table>
<b>Parameters:</b>
<table border="1">
<tr><th>name</th><th>default</th></tr>
<tr><td>namespace</td><td>"http://www.ing.com/CSP/XSD/General/Message_2"</td></tr>
<tr><td>errorCode</td><td> </td></tr>
<tr><td>errorReason</td><td> </td></tr>
<tr><td>errorDetailCode</td><td> </td></tr>
<tr><td>errorDetailText</td><td> </td></tr>
<tr><td>serviceName</td><td> </td></tr>
<tr><td>serviceContext</td><td> </td></tr>
<tr><td>operationName</td><td> </td></tr>
<tr><td>operationVersion</td><td>1</td></tr>
<tr><td>paradigm</td><td> </td></tr>
</table>
</p>FxF wrapper to be used with FxF3. When receiving files (direction=unwrap)
the message handed to the pipeline is the local filename extracted from an
ESB SOAP message. When sending files (direction=wrap) input should be a local
filename which will be wrapped into an ESB SOAP message. Please note: When
writing files which need to be send through FxF they should be written to
${fxf.dir}/NNX00000/out. The property ${fxf.dir} will automatically be
available on the OTAP environment (define it in StageSpecifics_LOC.properties
only). Replace NNX00000 with the specific flowId and generate a unique
filename (files will automatically be cleaned after 30 days or any other
value specified by ${fxf.retention}).Pipe to wrap or unwrap a message from/into a SOAP Envelope.A true multi-threaded Listener-class.
<br/>
Since version 4.1, Ibis supports distributed transactions using the XA-protocol. This feature is controlled by the
transacted attribute. If this is set to <code>true</code>, received messages are
committed or rolled back, possibly together with other actions, by the receiver or the pipeline.
In case of a failure, all actions within the transaction are rolled back.
<p><b>Using jmsTransacted and acknowledgement</b><br/>
If jmsTransacted is set <code>true</code>: it should ensure that a message is received and processed on a both or nothing basis.
IBIS will commit the the message, otherwise perform rollback. However using jmsTransacted, IBIS does not bring transactions within
the adapters under transaction control, compromising the idea of atomic transactions. In the roll-back situation messages sent to
other destinations within the Pipeline are NOT rolled back if jmsTransacted is set <code>true</code>! In the failure situation the
message is therefore completely processed, and the roll back does not mean that the processing is rolled back! To obtain the correct
(transactional) behaviour, transacted should be used instead of listener.transacted.
<p>
Setting listener.acknowledgeMode to "auto" means that messages are allways acknowledged (removed from
the queue, regardless of what the status of the Adapter is. "client" means that the message will only be removed from the queue
when the state of the Adapter equals the success state.
The "dups" mode instructs the session to lazily acknowledge the delivery of the messages. This is likely to result in the
delivery of duplicate messages if JMS fails. It should be used by consumers who are tolerant in processing duplicate messages.
In cases where the client is tolerant of duplicate messages, some enhancement in performance can be achieved using this mode,
since a session has lower overhead in trying to prevent duplicate messages.
</p>
<p>The setting for listener.acknowledgeMode will only be processed if
the setting for listener.transacted as well as for
listener.jmsTransacted is false.</p>
<p>If useReplyTo is set and a replyTo-destination is
specified in the message, the JmsListener sends the result of the processing
in the pipeline to this destination. Otherwise the result is sent using the (optionally)
specified Sender, that in turn sends the message to
whatever it is configured to.</p>
</p>
<p><b>Notice:</b> the JmsListener is ONLY capable of processing
<code>jakarta.jms.TextMessage</code>s <br/><br/>
</p>Transforms between ascii-ADIOS and an XML representation of ADIOS.
<p>
Sample xml:<br/>
<pre><code>
<adios rekenbox="L76HB150">
<rubriek naam="BER_VERZ_CD" waarde="COMBIFLEX_BELEGGING" />
<rubriek naam="INBR_CD" waarde="NIEUWE_VERZEKERING" />
<rubriek naam="PENS_DT_BEP_CD" waarde="DT_UIT_PENS_LFT" />
<rubriek nummer="313" naam="AS_OPSL_PRD_TRM_PRM" index="3" recordnr="74" record="VUT_VERZEKERING" waarde="52.34" />
...
</adios>
</code></pre>
<br/>
For input, a 'naam' or a 'nummer'-attribute must be specified. If both are specified, their match is checked.
On output, 'nummer', 'naam' and 'waarde'-attributes are always present in each rubriek-element.
Where applicable 'index', 'recordnr', 'record' and 'recordindex' are present, too.
If sub-records exist, they are present with a 'sub' prefix to all attributes.
</p>Returns the amount of pages of a PDF file.Pipe to manage the ApiPrincipal handlingExtension to SoapWrapperPipe for API Management.
<p>
<b>Configuration </b><i>(where deviating from SoapWrapperPipe)</i><b>:</b>
<table border="1">
<tr><th>attributes</th><th>description</th><th>default</th></tr>
<tr><td>soapHeaderSessionKey</td><td>if direction=<code>wrap</code>: </td><td>soapHeader</td></tr>
<tr><td>soapHeaderStyleSheet</td><td>if direction=<code>wrap</code>: </td><td>/xml/xsl/api/soapHeader.xsl</td></tr>
</table>
</p><p>
<b>/xml/xsl/api/soapHeader.xsl:</b>
<table border="1">
<tr><th>element</th><th>level</th><th>value</th></tr>
<tr><td>MessageHeader</td><td>0</td><td><code>MessageHeader</code> is only created when $conversationId is filled (otherwise skipped)</td></tr>
<tr><td> </td><td> </td><td>xmlns=$namespace</td></tr>
<tr><td>From</td><td>1</td><td><code>From</code> is only created when $from_in is filled (otherwise skipped) and it's created with the value of $from_out</td></tr>
<tr><td>HeaderFields</td><td>1</td><td> </td></tr>
<tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr>
</table>
<b>Parameters:</b>
<table border="1">
<tr><th>name</th><th>default</th></tr>
<tr><td>namespace</td><td>"http://api.nn.nl/MessageHeader"</td></tr>
<tr><td>from_in</td><td>if applicable, copied from the original (received) SOAP Header</td></tr>
<tr><td>from_out</td><td>property 'instance.name'</td></tr>
<tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr>
</table>
</p>Extension to WsdlXmlValidator for API Management.
The SOAP header can only contain the following schema (or it's empty):
<table border="1">
<tr><th>element</th><th>level</th><th>mandatory</th></tr>
<tr><td>MessageHeader</td><td>0</td><td>yes</td></tr>
<tr><td>xmlns="http://api.nn.nl/MessageHeader"</td><td> </td><td>yes</td></tr>
<tr><td>From</td><td>1</td><td>no</td></tr>
<tr><td>HeaderFields</td><td>1</td><td>yes</td></tr>
<tr><td>ConversationId</td><td>2</td><td>yes</td></tr>
</table>Pipe that performs base64 encoding and decoding.Pipe that iterates over the lines in a BLOB.Output bytes as specified by the input XML.
Actions are taken on every field
tag found in the input XML. Every field tag should have a type attribute
that specifies the type of conversion that needs to be done on the string
specified by the value attribute. A value attribute also needs to be present
for every field tag. Currently, two types of conversion are supported:
<ul>
<li><code>GetBytesFromString</code>, a conversion from string to bytes as specified by java.lang.String.getBytes(String charsetName)</li>
<li><code>PackedDecimal</code>, a conversion from string to Packed-decimal</li>
</ul>
An additional charset attribute is needed for a GetBytesFromString
conversion. An input XML that would encode the string " TEST 1234 "
into EBCDIC format would look like:
<pre>
<fields>
<field type="GetBytesFromString" value=" TEST 1234 " charset="Cp037"/>
</fields>
</pre>
The Packed-decimal conversion has been implemented according to information
found in the following resources:
<ul>
<li>A description as found at <a href="http://www.simotime.com/datapk01.htm">http://www.simotime.com/datapk01.htm</a></li>
<li>AS400PackedDecimal.java from jtopen_6_1_source.zip downloaded at <a href="http://jt400.sourceforge.net/">http://jt400.sourceforge.net/</a></li>
</ul>
Some examples:
<ul>
<li>The string +12345 will be translated to three bytes with the following hexadecimal representation: 12 34 5C</li>
<li>The string -12345 will be translated to three bytes with the following hexadecimal representation: 12 34 5D</li>
<li>The string 12345 will be translated to three bytes with the following hexadecimal representation: 12 34 5F</li>
<li>The string 1234 will be translated to three bytes with the following hexadecimal representation: 01 23 4F</li>
</ul>
The Packed-decimal is prefixed with zeroes when the specified size is bigger
than the number of decimals. An exception is thrown when the specified size
is smaller than the number of decimals.
An input XML that would generate a number of Packed-decimals could look like:
<pre>
<fields>
<field type="PackedDecimal" value="+12345" size="16"/>
<field type="PackedDecimal" value="+67890" size="16"/>
<field type="PackedDecimal" value="+1234" size="16"/>
<field type="PackedDecimal" value="-12345" size="16"/>
<field type="PackedDecimal" value="-67890" size="16"/>
<field type="PackedDecimal" value="-1234" size="16"/>
<field type="PackedDecimal" value="12345" size="16"/>
<field type="PackedDecimal" value="67890" size="16"/>
<field type="PackedDecimal" value="1234" size="16"/>
<field type="PackedDecimal" value="+1" size="16"/>
<field type="PackedDecimal" value="-1" size="16"/>
<field type="PackedDecimal" value="+12" size="16"/>
<field type="PackedDecimal" value="-12" size="16"/>
<field type="PackedDecimal" value="+123" size="16"/>
<field type="PackedDecimal" value="-123" size="16"/>
<field type="PackedDecimal" value="+1234" size="16"/>
<field type="PackedDecimal" value="-1234" size="16"/>
<field type="PackedDecimal" value="+12345" size="16"/>
<field type="PackedDecimal" value="-12345" size="16"/>
<field type="PackedDecimal" value="+123456" size="16"/>
<field type="PackedDecimal" value="-123456" size="16"/>
<field type="PackedDecimal" value="+1234567" size="16"/>
<field type="PackedDecimal" value="-1234567" size="16"/>
<field type="PackedDecimal" value="+12345678" size="16"/>
<field type="PackedDecimal" value="-12345678" size="16"/>
</fields>
</pre>Pipe to calculate checksum on input.Pipe that iterates over the lines in a CLOB.Pipe that compares the two integer values.
If one of the parameters is missing then the input message will be used as the missing operand.
This pipe can be used in combination with IncreaseIntegerPipe to construct loops.Pipe that lexicographically compares two strings, that must NOT be empty.Pipe to zip or unzip a message or file.Selects an exitState, based on the number of received messages by this pipe.
The exitState is the difference (subtraction) between the <code>divisor</code> and
the remainder of [number of received messages] modulus <code>divisor</code>.
This will always be an integer between 1 and <code>divisor</code>, inclusive.Pipe to check the the CredentialFactory (for testing only).Pipe that reads a CRL from an input stream and transforms it to an XML.
The steam is closed after reading.
Example configuration:
<pre><code>
<pipe
name="Read issuer"
className="org.frankframework.pipes.FilePipe"
actions="read"
fileName="dir/issuer.cer"
preserveInput="true"
outputType="stream"
storeResultInSessionKey="issuer"
>
<forward name="success" path="Read CRL" />
</pipe>
<pipe
name="Read CRL"
className="org.frankframework.pipes.FilePipe"
actions="read"
fileName="dir/CRL.crl"
outputType="stream"
>
<forward name="success" path="Transform CRL" />
</pipe>
<pipe
name="Transform CRL"
className="org.frankframework.pipes.CrlPipe"
issuerSessionKey="issuer"
>
<forward name="success" path="EXIT" />
</pipe>
</code></pre>Reads a message in CSV format, and turns it into XML.Pipe that sleeps for a specified time, which defaults to 5000 msecs.
Usefull for testing purposes.Kind of extension to EsbSoapWrapperPipe for real time destinations.Pipe that performs domain transforming on the basis of a database table.
Every string which equals "%![DT{<code>label</code>,<code>valueIn</code>,<code>type</code>}]" will be replaced by <code>valueOut</code>.
The field <code>type</code>, which is optional, indicates the format of <code>valueIn</code>. Currently the following types are supported:
<ul>
<li><code>string</code> (default): the methode setString() is used</li>
<li><code>number</code>: the method setDouble() is used </li>
</ul>Returns simply the input message.XmlValidator that will automatically add the SOAP envelope XSD and the ESB XSD (e.g. a CommonMessageHeader.xsd)
to the set of XSDs used for validation.Extension to SoapWrapperPipe for separate modes.
<p><b>Configuration </b><i>(where deviating from SoapWrapperPipe)</i><b>:</b>
<table border="1">
<tr><th>attributes</th><th>description</th><th>default</th></tr>
<tr><td>mode</td><td>either <code>i2t</code> (ifsa2tibco), <code>reg</code> (regular) or <code>bis</code> (Business Integration Services)</td><td>reg</td></tr>
<tr><td>cmhVersion</td><td>(only used when <code>mode=reg</code>) Common Message Header version (1 or 2)</td><td>1 when <code>mode=reg</code>, 0 otherwise</td></tr>
<tr><td>soapHeaderSessionKey</td><td>if direction=<code>unwrap</code>: </td><td>soapHeader</td></tr>
<tr><td>soapHeaderStyleSheet</td><td>if direction=<code>wrap</code> and mode=<code>i2t</code>:</td><td>/xml/xsl/esb/soapHeader.xsl</td></tr>
<tr><td></td><td>if direction=<code>wrap</code> and mode=<code>reg</code>:</td><td>TODO (for now identical to the "<code>i2t</code>" SOAP Header)</td></tr>
<tr><td></td><td>if direction=<code>wrap</code> and mode=<code>bis</code>:</td><td>/xml/xsl/esb/bisSoapHeader.xsl</td></tr>
<tr><td>soapBodyStyleSheet</td><td>if direction=<code>wrap</code> and mode=<code>reg</code>:</td><td>/xml/xsl/esb/soapBody.xsl</td></tr>
<tr><td></td><td>if direction=<code>wrap</code> and mode=<code>bis</code>:</td><td>/xml/xsl/esb/bisSoapBody.xsl</td></tr>
<tr><td>addOutputNamespace</td><td>(only used when <code>direction=wrap</code>) when <code>true</code>, <code>outputNamespace</code> is automatically set using the parameters (if $messagingLayer='P2P' then 'http://nn.nl/XSD/$businessDomain/$applicationName/$applicationFunction' else is serviceContext is not empty 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceContext/$serviceContextVersion/$operationName/$operationVersion' else 'http://nn.nl/XSD/$businessDomain/$serviceName/$serviceVersion/$operationName/$operationVersion')</td><td><code>false</code></td></tr>
<tr><td>retrievePhysicalDestination</td><td>(only used when <code>direction=wrap</code>) when <code>true</code>, the physical destination is retrieved from the queue instead of using the parameter <code>destination</code></td><td><code>true</code></td></tr>
<tr><td>useFixedValues</td><td>If <code>true</code>, the fields CorrelationId, MessageId and Timestamp will have a fixed value (for testing purposes only)</td><td><code>false</code></td></tr>
<tr><td>fixResultNamespace</td><td>(only used when <code>direction=wrap</code>) when <code>true</code> and the Result tag already exists, the namespace is changed</td><td><code>false</code></td></tr>
<tr><td>p2pAlias</td><td>When the messagingLayer part of the destination has this value interpret it as P2P</td><td><code></code></td></tr>
<tr><td>esbAlias</td><td>When the messagingLayer part of the destination has this value interpret it as ESB</td><td><code></code></td></tr>
</table></p>
<p>
<b>/xml/xsl/esb/soapHeader.xsl:</b>
<table border="1">
<tr><th>element</th><th>level</th><th>value</th></tr>
<tr><td>MessageHeader</td><td>0</td><td> </td></tr>
<tr><td> </td><td> </td><td>xmlns=$namespace</td></tr>
<tr><td>From</td><td>1</td><td> </td></tr>
<tr><td>Id</td><td>2</td><td>$fromId</td></tr>
<tr><td>To</td><td>1</td><td> </td></tr>
<tr><td>Location</td><td>2</td><td>if $messagingLayer='P2P' then<br/> $messagingLayer.$businessDomain.$applicationName.$applicationFunction.$paradigm<br/>else if $serviceContext is not empty then<br/> $messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceContext.$serviceContextVersion.$operationName.$operationVersion.$paradigm<br/>else<br/> $messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceVersion.$operationName.$operationVersion.$paradigm</td></tr>
<tr><td>HeaderFields</td><td>1</td><td> </td></tr>
<tr><td>CPAId</td><td>2</td><td>$cpaId</td></tr>
<tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr>
<tr><td>CorrelationId</td><td>2</td><td>$correlationId (if empty then skip this element)</td></tr>
<tr><td>MessageId</td><td>2</td><td>$messageId</td></tr>
<tr><td>ExternalRefToMessageId</td><td>2</td><td>$externalRefToMessageId (if empty then skip this element)</td></tr>
<tr><td>Timestamp</td><td>2</td><td>$timestamp</td></tr>
<tr><td>TransactionId</td><td>2</td><td>$transactionId (only used when $mode=reg and $cmhVersion=2; if empty then skip this element)</td></tr>
<tr><td>Service</td><td>1</td><td> </td></tr>
<tr><td>Name</td><td>2</td><td>$serviceName</td></tr>
<tr><td>Context</td><td>2</td><td>$serviceContext</td></tr>
<tr><td>Action</td><td>2</td><td> </td></tr>
<tr><td>Paradigm</td><td>3</td><td>$paradigm</td></tr>
<tr><td>Name</td><td>3</td><td>$operationName</td></tr>
<tr><td>Version</td><td>3</td><td>$operationVersion</td></tr>
</table>
<b>Parameters:</b>
<table border="1">
<tr><th>name</th><th>default</th></tr>
<tr><td>mode</td><td>copied from <code>mode</code></td></tr>
<tr><td>cmhVersion</td><td>copied from <code>cmhVersion</code></td></tr>
<tr><td>namespace</td><td>"http://nn.nl/XSD/Generic/MessageHeader/2" (only when $mode=reg and $cmhVersion=2)<br/>"http://nn.nl/XSD/Generic/MessageHeader/1" (otherwise)</td></tr>
<tr><td>businessDomain</td><td> </td></tr>
<tr><td>serviceName</td><td> </td></tr>
<tr><td>serviceContext</td><td> </td></tr>
<tr><td>service(Context)Version</td><td>1</td></tr>
<tr><td>operationName</td><td> </td></tr>
<tr><td>operationVersion</td><td>1</td></tr>
<tr><td>paradigm</td><td> </td></tr>
<tr><td>applicationName</td><td> </td></tr>
<tr><td>applicationFunction</td><td> </td></tr>
<tr><td>messagingLayer</td><td>ESB</td></tr>
<tr><td>serviceLayer</td><td> </td></tr>
<tr><td>destination</td><td>if not empty this parameter contains the preceding parameters as described in 'Location' in the table above</td></tr>
<tr><td>fromId</td><td>property 'instance.name'</td></tr>
<tr><td>cpaId</td><td>if applicable, copied from the original (received) SOAP Header, else 'n/a'</td></tr>
<tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header, else parameter pattern '{hostname}_{uid}'</td></tr>
<tr><td>messageId</td><td>parameter pattern '{hostname}_{uid}'</td></tr>
<tr><td>correlationId</td><td>if $paradigm equals 'Response' then copied from MessageId in the original (received) SOAP Header</td></tr>
<tr><td>externalRefToMessageId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr>
<tr><td>timestamp</td><td>parameter pattern '{now,date,yyyy-MM-dd'T'HH:mm:ss}'</td></tr>
<tr><td>transactionId</td><td>if applicable, copied from the original (received) SOAP Header</td></tr>
</table>
</p>
<p>
<b>/xml/xsl/esb/bisSoapHeader.xsl:</b>
<table border="1">
<tr><th>element</th><th>level</th><th>value</th></tr>
<tr><td>MessageHeader</td><td>0</td><td> </td></tr>
<tr><td> </td><td> </td><td>xmlns=$namespace</td></tr>
<tr><td>From</td><td>1</td><td> </td></tr>
<tr><td>Id</td><td>2</td><td>$fromId</td></tr>
<tr><td>HeaderFields</td><td>1</td><td> </td></tr>
<tr><td>ConversationId</td><td>2</td><td>$conversationId</td></tr>
<tr><td>MessageId</td><td>2</td><td>$messageId</td></tr>
<tr><td>ExternalRefToMessageId</td><td>2</td><td>$externalRefToMessageId (if empty then skip this element)</td></tr>
<tr><td>Timestamp</td><td>2</td><td>$timestamp</td></tr>
</table>
<b>Parameters:</b>
<table border="1">
<tr><th>name</th><th>default</th></tr>
<tr><td>namespace</td><td>"http://www.ing.com/CSP/XSD/General/Message_2"</td></tr>
<tr><td>fromId</td><td>property 'instance.name'</td></tr>
<tr><td>conversationId</td><td>if applicable, copied from the original (received) SOAP Header, else parameter pattern '{hostname}_{uid}'</td></tr>
<tr><td>messageId</td><td>parameter pattern '{hostname}_{uid}'</td></tr>
<tr><td>externalRefToMessageId</td><td>if applicable, copied from MessageId in the original (received) SOAP Header</td></tr>
<tr><td>timestamp</td><td>parameter pattern '{now,date,yyyy-MM-dd'T'HH:mm:ss}'</td></tr>
</table>
</p>
<p>
<b>/xml/xsl/esb/soapBody.xsl:</b>
<table border="1">
<tr><th>element</th><th>level</th><th>value</th></tr>
<tr><td>[Payload]</td><td>0</td><td>if $errorCode is empty then the complete payload will be copied and if not already existing a Result tag will be added<br/>else only the root tag will be copied</td></tr>
<tr><td>Result</td><td>1</td><td>this element will be the last child in the copied root tag (only applicable for $paradigm 'Response'); if $errorCode is empty and a Result tag already exists then skip this element including its child elements</td></tr>
<tr><td> </td><td> </td><td>xmlns=$namespace</td></tr>
<tr><td>Status</td><td>2</td><td>if $errorCode is empty then 'OK'<br/>else 'ERROR'</td></tr>
<tr><td>ErrorList</td><td>2</td><td>if $errorCode is empty then skip this element including its child elements</td></tr>
<tr><td>Error</td><td>3</td><td> </td></tr>
<tr><td>Code</td><td>4</td><td>$errorCode</td></tr>
<tr><td>Reason</td><td>4</td><td>if $errorReason is not empty then $errorReason<br/>else it will be derived from $errorCode:
<table border="1">
<tr><th>errorCode</th><th>errorText</th></tr>
<tr><td>ERR6002</td><td>Service Interface Request Time Out</td></tr>
<tr><td>ERR6003</td><td>Invalid Request Message</td></tr>
<tr><td>ERR6004</td><td>Invalid Backend system response</td></tr>
<tr><td>ERR6005</td><td>Backend system failure response</td></tr>
<tr><td>ERR6999</td><td>Unspecified Errors</td></tr>
</table>
</td></tr>
<tr><td>Service</td><td>4</td><td> </td></tr>
<tr><td>Name</td><td>5</td><td>$serviceName</td></tr>
<tr><td>Context</td><td>5</td><td>$serviceContext</td></tr>
<tr><td>Action</td><td>5</td><td> </td></tr>
<tr><td>Paradigm</td><td>6</td><td>$paradigm</td></tr>
<tr><td>Name</td><td>6</td><td>$operationName</td></tr>
<tr><td>Version</td><td>6</td><td>$operationVersion</td></tr>
<tr><td>DetailList</td><td>4</td><td>if $errorDetailCode is empty then skip this element including its child elements</td></tr>
<tr><td>Detail</td><td>5</td><td> </td></tr>
<tr><td>Code</td><td>6</td><td>$errorDetailCode</td></tr>
<tr><td>Text</td><td>6</td><td>$errorDetailText (if empty then skip this element)</td></tr>
</table>
<b>Parameters:</b>
<table border="1">
<tr><th>name</th><th>default</th></tr>
<tr><td>mode</td><td>copied from <code>mode</code></td></tr>
<tr><td>cmhVersion</td><td>copied from <code>cmhVersion</code></td></tr>
<tr><td>namespace</td><td>"http://nn.nl/XSD/Generic/MessageHeader/2" (only when $mode=reg and $cmhVersion=2)<br/>"http://nn.nl/XSD/Generic/MessageHeader/1" (otherwise)</td></tr>
<tr><td>errorCode</td><td> </td></tr>
<tr><td>errorReason</td><td> </td></tr>
<tr><td>errorDetailCode</td><td> </td></tr>
<tr><td>errorDetailText</td><td> </td></tr>
<tr><td>serviceName</td><td> </td></tr>
<tr><td>serviceContext</td><td> </td></tr>
<tr><td>operationName</td><td> </td></tr>
<tr><td>operationVersion</td><td>1</td></tr>
<tr><td>paradigm</td><td> </td></tr>
<tr><td>fixResultNamespace</td><td>false</td></tr>
</table>
</p>
<p>
<b>/xml/xsl/esb/bisSoapBody.xsl:</b>
<table border="1">
<tr><th>element</th><th>level</th><th>value</th></tr>
<tr><td>[Payload]</td><td>0</td><td>if $errorCode is empty then the complete payload will be copied and if not already existing a Result tag will be added<br/>else only the root tag will be copied</td></tr>
<tr><td>Result</td><td>1</td><td>this element will be the last child in the copied root tag (only applicable for $paradigm 'Response' and 'Reply'); if $errorCode is empty and a Result tag already exists then skip this element including its child elements</td></tr>
<tr><td> </td><td> </td><td>xmlns=$namespace</td></tr>
<tr><td>Status</td><td>2</td><td>if $errorCode is empty then 'OK'<br/>else 'ERROR'</td></tr>
<tr><td>ErrorList</td><td>2</td><td>if $errorCode is empty then skip this element including its child elements</td></tr>
<tr><td>Error</td><td>3</td><td> </td></tr>
<tr><td>Code</td><td>4</td><td>$errorCode</td></tr>
<tr><td>Reason</td><td>4</td><td>if $errorReason is not empty then $errorReason<br/>else it will be derived from $errorCode:
<table border="1">
<tr><th>errorCode</th><th>errorText</th></tr>
<tr><td>ERR6002</td><td>Service Interface Request Time Out</td></tr>
<tr><td>ERR6003</td><td>Invalid Request Message</td></tr>
<tr><td>ERR6004</td><td>Invalid Backend system response</td></tr>
<tr><td>ERR6005</td><td>Backend system failure response</td></tr>
<tr><td>ERR6999</td><td>Unspecified Errors</td></tr>
</table>
</td></tr>
<tr><td>Service</td><td>4</td><td> </td></tr>
<tr><td>Name</td><td>5</td><td>$serviceName</td></tr>
<tr><td>Context</td><td>5</td><td>$serviceContext</td></tr>
<tr><td>Action</td><td>5</td><td> </td></tr>
<tr><td>Name</td><td>6</td><td>$operationName</td></tr>
<tr><td>Version</td><td>6</td><td>$operationVersion</td></tr>
<tr><td>DetailList</td><td>4</td><td>if $errorDetailCode is empty then skip this element including its child elements</td></tr>
<tr><td>Detail</td><td>5</td><td> </td></tr>
<tr><td>Code</td><td>6</td><td>$errorDetailCode</td></tr>
<tr><td>Text</td><td>6</td><td>$errorDetailText (if empty then skip this element)</td></tr>
</table>
<b>Parameters:</b>
<table border="1">
<tr><th>name</th><th>default</th></tr>
<tr><td>namespace</td><td>"http://www.ing.com/CSP/XSD/General/Message_2"</td></tr>
<tr><td>errorCode</td><td> </td></tr>
<tr><td>errorReason</td><td> </td></tr>
<tr><td>errorDetailCode</td><td> </td></tr>
<tr><td>errorDetailText</td><td> </td></tr>
<tr><td>serviceName</td><td> </td></tr>
<tr><td>serviceContext</td><td> </td></tr>
<tr><td>operationName</td><td> </td></tr>
<tr><td>operationVersion</td><td>1</td></tr>
<tr><td>paradigm</td><td> </td></tr>
</table>
</p>Pipe that performs translations between special characters and their xml equivalents.
<p>When direction=cdata2text all cdata nodes are converted to text nodes without any other translations.</p>Pipe that throws an exception, based on the input message.This Pipe opens and returns a file from the classpath. The filename is a mandatory parameter to use. You can
provide this by using the <code>filename</code> attribute or with a <code>param</code> element to be able to
use a sessionKey for instance.
<h2>Migrating from deprecated features</h2>
The FixedResultPipe was a jack of all trades. You could use it to read a file (only text) and/or use
a 'resultString' to find / replace values in. The following migrations are available:
<h3>For using a 'resultString'</h3>
You can use the EchoPipe for a static value. This looked like this before:
<pre>
{@code
<pipe name="HelloWorld" className="org.frankframework.pipes.FixedResult" returnString="Hello World">
<forward name="success" path="EXIT"/>
</pipe>
}
</pre>
Becomes:
<pre>
{@code
<pipe name="HelloWorld" className="org.frankframework.pipes.EchoPipe" getInputFromFixedValue="Hello World">
<forward name="success" path="EXIT"/>
</pipe>
}
</pre>
<h3>For replacing a value</h3>
You can use the ReplacerPipe to replace a value in multiple ways. First, when you need to replace a placeholder with a parameter.
This looked like:
<pre>
{@code
<pipe name="make unique message" className="org.frankframework.pipes.FixedResultPipe"
returnString="<msg mid="MID" action="ACTION" />" replaceFixedParams="true">
<param name="MID" sessionKey="mid" />
<param name="ACTION" xpathExpression="request/@action" />
</pipe>
}
</pre>
And can now be written like this (note the ?{..} syntax):
<pre>
{@code
<pipe name="make unique message" className="org.frankframework.pipes.ReplacerPipe"
getInputFromFixedValue="<msg mid="?{MID}" action="?{ACTION}" />">
<param name="MID" sessionKey="mid" />
<param name="ACTION" xpathExpression="request/@action" />
</pipe>
}
</pre>
When you need to replace a fixed value use the ReplacerPipe with find and replace. This looked like this:
<pre>
{@code
<FixedResultPipe name="InputValidateError"
filename="ManageFileSystem/xml/ErrorMessage.xml"
replaceFrom="%reasonCode" replaceTo="NOT_WELL_FORMED_XML">
<forward name="success" path="EXIT" />
</FixedResultPipe>
}
</pre>
And now should be solved like this:
<pre>
{@code
<FixedResultPipe name="InputValidateError"
filename="ManageFileSystem/xml/ErrorMessage.xml">
<forward name="success" path="replaceReasonCode" />
</FixedResultPipe>
<ReplacerPipe name="replaceReasonCode"
find="%reasonCode"
replace="NOT_WELL_FORMED_XML">
<forward name="success" path="EXIT" />
</ReplacerPipe>
}
</pre>
This is also an example of now using two pipes to achieve the same result. Each pipe has its own responsibility.
<h2>More complex configurations</h2>
In some cases, a combination of the above is needed to achieve what worked before. In some cases, FixedResultPipe
was also used to store information in the session. For example, a port of configuration in the JMS listener sender configuration looked like this:
<pre>
{@code
<CompareStringPipe name="compareIdAndCid" >
<param name="operand1" sessionKey="id"/>
<param name="operand2" sessionKey="cid"/>
<forward name="equals" path="IdAndCidSame" />
<forward name="lessthan" path="IdAndCidDifferent" />
<forward name="greaterthan" path="IdAndCidDifferent" />
</CompareStringPipe>
<FixedResultPipe name="IdAndCidSame" returnString="true" storeResultInSessionKey="IdAndCidSame">
<forward name="success" path="displayKeys" />
</FixedResultPipe>
<FixedResultPipe name="IdAndCidDifferent" returnString="false" storeResultInSessionKey="IdAndCidSame">
<forward name="success" path="displayKeys" />
</FixedResultPipe>
<pipe name="displayKeys" className="org.frankframework.pipes.FixedResultPipe"
returnString="branch [BRANCH] Orignal Id [MID] cid [CID] id=cid [SAME]" replaceFixedParams="true">
<param name="BRANCH" sessionKey="originalMessage" xpathExpression="*/@branch" />
<param name="MID" sessionKey="id" />
<param name="CID" sessionKey="cid" />
<param name="SAME" sessionKey="IdAndCidSame" />
<forward name="success" path="EXIT" />
</pipe>
}
</pre>
Was rewritten to the following:
<pre>
{@code
<CompareStringPipe name="compareIdAndCid" >
<param name="operand1" sessionKey="id"/>
<param name="operand2" sessionKey="cid"/>
<forward name="equals" path="IdAndCidSame" />
<forward name="lessthan" path="IdAndCidDifferent" />
<forward name="greaterthan" path="IdAndCidDifferent" />
</CompareStringPipe>
<PutInSessionPipe name="IdAndCidSame" value="true" sessionKey="IdAndCidSame">
<forward name="success" path="putOriginalMessageInSession" />
</PutInSessionPipe>
<PutInSessionPipe name="IdAndCidDifferent" value="false" sessionKey="IdAndCidSame">
<forward name="success" path="putOriginalMessageInSession" />
</PutInSessionPipe>
<PutInSessionPipe name="putOriginalMessageInSession" sessionKey="incomingMessage"/>
<pipe name="displayKeys" className="org.frankframework.pipes.ReplacerPipe"
getInputFromFixedValue="branch [?{BRANCH}] Original Id [?{MID}] cid [?{CID}] id=cid [?{SAME}]">
<param name="BRANCH" sessionKey="originalMessage" xpathExpression="*/@branch" />
<param name="MID" sessionKey="id" />
<param name="CID" sessionKey="cid" />
<param name="SAME" sessionKey="IdAndCidSame" />
<forward name="success" path="EXIT" />
</pipe>
}
</pre>
<p>
<h2>The features/documentation of the deprecated features</h2>
Produces a fixed result that does not depend on the input message. It may return the contents of a file
when <code>filename</code> or <code>filenameSessionKey</code> is specified. Otherwise, the
value of attribute <code>returnString</code> is returned.
<br/><br/>
Using parameters and the attributes of this pipe, it is possible to substitute values. This pipe
performs the following steps:
<ol>
<li>During execution, this pipe first obtains a string based on attributes <code>returnString</code>, <code>filename</code> or <code>filenameSessionKey</code>.</li>
<li>The resulting string is transformed according to attributes <code>replaceFrom</code> and <code>replaceTo</code> if set.
Please note that the plain value of attribute <code>replaceFrom</code> is matched, no <code>?{...}</code> here.</li>
<li>The resulting string is substituted based on the parameters of this pipe. This step depends on attribute <code>replaceFixedParams</code>.
Assume that there is a parameter with name <code>xyz</code>. If <code>replaceFixedParams</code> is <code>false</code>, then
each occurrence of <code>?{xyz}</code> is replaced by the parameter's value. Otherwise, the text <code>xyz</code>
is substituted. See Parameter to see how parameter values are determined.</li>
<li>If attribute <code>substituteVars</code> is <code>true</code>, then expressions <code>${...}</code> are substituted using
system properties, pipelinesession variables and application properties. Please note that
no <code>${...}</code> patterns are left if the initial string came from attribute <code>returnString</code>, because
any <code>${...}</code> pattern in attribute <code>returnString</code> is substituted when the configuration is loaded.</li>
<li>If attribute <code>styleSheetName</code> is set, then the referenced XSLT stylesheet is applied to the resulting string.</li>
</ol>
<br/>
Many attributes of this pipe reference file names. If a file is referenced by a relative path, the path
is relative to the configuration's root directory.Sends a message to a Sender for each child element of the input XML.
Input can be a String containing XML, a filename (set processFile true), an InputStream or a Reader.FxF wrapper to be used with FxF3. When receiving files (direction=unwrap)
the message handed to the pipeline is the local filename extracted from an
ESB SOAP message. When sending files (direction=wrap) input should be a local
filename which will be wrapped into an ESB SOAP message. Please note: When
writing files which need to be send through FxF they should be written to
${fxf.dir}/NNX00000/out. The property ${fxf.dir} will automatically be
available on the OTAP environment (define it in StageSpecifics_LOC.properties
only). Replace NNX00000 with the specific flowId and generate a unique
filename (files will automatically be cleaned after 30 days or any other
value specified by ${fxf.retention}).FxF XML validator to be used with FxF3. When receiving files
(direction=receive) the message is validated against the
OnCompletedTransferNotify WSDL (a P2P connection, hence same WSDL (provided
by Tibco) for all queues (every Ibis receiving FxF files has it's own
queue)). When sending files (direction=send) the message is validated against
the StartTransfer WSDL (ESB service provided by Tibco).Gets the contents of the pipeLineSession by a key specified by
<code>sessionKey</code>.Returns the name of the user executing the request.Returns information about Tibco queues in a XML string.
<p>
If the parameter <code>queueName</code> is empty then
<ul><li>all Tibco queues including information about these queues are returned</li></ul>
else
<ul><li>one message on a specific Tibco queue including information about this message is returned (without removing it)</li></ul>
</p>Pipe that hashes the input message.Pipe that increases the integer value of a session variable.
Can be used in combination with CompareIntegerPipe to construct loops.Pipe that checks if the calling user has a specified role.
Uses the PipeLineSessions methods.
<p>
If the role is not specified by the role attribute, the input of
the pipe is used as role.
N.B. The role itself must be specified by hand in the deployment descriptors web.xml and application.xml.
</p>Selects an exitState, based on if the input is a XML string.
The input is an XML string if it, after removing leading white-space characters, starts with '<'.<code>Pipe</code> that validates the XML or JSON input message against a XML Schema and returns either XML or JSON.JSON is not aware of the element order. This pipe performs a <strong>best effort</strong> JSON to XML transformation.
If you wish to validate or add structure to the converted (xml) file, please use the Json2XmlValidator.Pipe that validates the input message against a JSON Schema.<code>Pipe</code> that checks the well-formedness of the input message.Perform an XSLT transformation with a specified stylesheet on a JSON input, yielding JSON, XML or text.
JSON input is transformed into XML map, array, string, integer and boolean elements, in the namespace http://www.w3.org/2013/XSL/json.
The XSLT stylesheet or XPathExpression operates on these element.Creates a JWT with a shared secret using the HmacSHA256 algorithm.Transforms between ascii and an XML representation.
<p>
Sample xml:<br/><code><pre>
<CALCBOXMESSAGE>
<OPDRACHT>
<OPDRACHTSOORT>ONTTREK_RISICO_EN_KOSTEN</OPDRACHTSOORT>
<BASISRENDEMENTSOORT>NVT</BASISRENDEMENTSOORT>
<BEDRAG>625</BEDRAG>
<DATUM>20071201</DATUM>
...
</CALCBOXMESSAGE>
</pre></code> <br/>
Sample ascii:<br/><code><pre>
OPDRACHT : #SAMENGESTELD
OPDRACHT.OPDRACHTSOORT :ONTTREK_RISICO_EN_KOSTEN
OPDRACHT.BASISRENDEMENTSOORT :NVT
OPDRACHT.BEDRAG :625
OPDRACHT.DATUM :20071201
...
EINDEREKENVERZOEK :EINDE
</pre></code>
</p>
<p><b>Configuration:</b>
<table border="1">
<tr><th>attributes</th><th>description</th><th>default</th></tr>
<tr><td>direction</td><td>transformation direction. Possible values
<ul>
<li>"Xml2Label": transform an XML file to ascii</li>
<li>"Label2Xml": transform an ascii file to XML</li>
</ul></td><td>Xml2Label</td></tr>
</table>
</p>Call Ladybug Test Tool to rerun the reports present in test storage (see Test tab in Ladybug)Call Larva Test ToolPipe that returns the memberships of a userDN.
The input is a fullDn, of a user or a group.
<br/>
Sample result:<br/><code><pre>
<ldap>
<entry name="CN=xxyyzz,OU=Users,DC=domain,DC=ext">
<attributes>
<attribute>
<attribute name="memberOf" value="Extern"/>
<attribute name="departmentCode" value="358000"/>
<attribute name="organizationalHierarchy">
<item value="ou=zzyyxx"/>
<item value="ou=OPS&IT,ou=Group,ou=domain,o=ext"/>
</attribute>
<attribute name="givenName" value="Gerrit"/>
</attributes>
</entry>
<entry> .... </entry>
.....
</ldap>
</pre></code> <br/>Pipe that checks if a specified dn exists as 'member' in another specified dn
in LDAP.Pipe to work with the server local filesystem.
<p>
In addition to regular parameters for filesystem senders, it is possible
to set custom extended attributes on files by prefixing parameter names with
FileAttribute..
This prefix will be not be part of the actual metadata property name.
</p>
<p>
The string value of these parameters will be used as value of the custom metadata attribute.
</p>
<p>
If extended attributes actually can be written depends on the underlying OS / filesystem.
</p>Pipe that stores all its parameter values in the ThreadContext, formerly known as Mapped Diagnostic Context (MDC), to be used in logging.
The input is passed through to the output.Pipe that sends a mail-message using a MailSender as its sender.
<br/>
Sample email.xml:<br/><code><pre>
<email>
<recipients>
<recipient>***@natned</recipient>
<recipient>***@nn.nl</recipient>
</recipients>
<from>***@nn.nl</from>
<subject>this is the subject</subject>
<message>dit is de message</message>
</email>
</pre></code> <br/>
Notice: it must be valid XML. Therefore, especially the message element
must be plain text or be wrapped as CDATA.<br/><br/>
example:<br/><code><pre>
<message><![CDATA[<h1>This is a HtmlMessage</h1>]]></message>
</pre></code><br/>Pipe that performs obfuscation on a message, using the tibcrypt library.<p>Performs various PGP (Pretty Good Privacy) actions such as Encrypt, Sign, Decrypt, Verify.</p>
<p>To use this pipe action parameter has to be set to one of the actions above.</p>
<p>
<strong>Note:</strong> When secret key is required in any of the actions,
the related public key should also be included in public keys.
</p>
<p>
<strong>Note:</strong> For fields that require multiple input
(such as recipients, senders and publicKey -in certain actions-)
you can seperate multiple values with ";" (semicolon).
</p>Generates a random password.Hash a password or validate a password against a hash using PasswordHash.java
from <a href="https://crackstation.net/hashing-security.htm">https://crackstation.net/hashing-security.htm</a>.
Input of the pipe is expected to be the password. In case hashSessionKey
isn't used a hash of the password is returned. In case hashSessionKey is used
it is validated against the hash in the session key which will determine
the forward to be used (success or failure).Converts files to pdf type. This pipe has two actions convert and combine.
With combine action you can attach files into main pdf file.Puts the input or the <code>value</code> in the PipeLineSession, under the key specified by
<code>sessionKey</code>. Additionally, stores parameter values in the PipeLineSession.Puts the system date/time under a key in the pipeLineSession.Perform a call to a RekenBox.
The inputmessage is written to a temporary file and passed as inputfile to the rekenbox. The contents of the outputfile of the
rekenbox is returned as output message. The name of the rekenbox, as determined from the inputfile, is optionally written to
the pipeLineSession.
<p><b>Note:</b><br/>
The rekenbox-name is currently determined from the first 8 characters of the file, or up
to the first space (' ') or colon (':') character. Beware that if the first character of the
file is a newline character or something similar, less characters are available to pass the
rekenbox-name on. Especially if the inputmessages are constructed by means of an XSLT-stylesheet,
messages often start with a newline character.
</p>Remove specified cache key from cache with specified name.Removes a key specified by <code>sessionKey</code>
from the pipeLineSession.This Pipe is used to replace values in a few ways. The following steps are performed:
<ol>
<li>If <code>find</code> is provided, it will be replaced by <code>replace</code></li>
<li>The resulting string is substituted based on the parameters of this pipe. It will replace values in the input enclosed
with ?{}, for instance: ?{parameterOne}, with parameters of this pipe. If a parameter for the given value is not found, it
will not be replaced and the '?{parameterOne}' value will remain in the output.
<p>
See Parameter to see how parameter values are determined.</li>
<p>
<li>If attribute <code>substituteVars</code> is <code>true</code>, then expressions <code>${...}</code> are substituted using
system properties, session variables and application properties. Please note that no <code>${...}</code> patterns are left in the input. </li>
</ol>Pipe that iterates over rows in in ResultSet.
Each row is send passed to the sender in the same format a row is usually returned from a query.Uses the (old) SMB 1 protocol.
<br/>
Only supports NTLM authentication.Manager for SAP Logical Units of Work (LUWs).
Used to begin, commit or rollback LUWs. A SapLUWManager can be placed before a number
of SapSenders. The SapLUWManager and the SapSenders must each use the same value for
luwHandleSessionKey. By doing so, they use the same connection to SAP. This allows to
perform a commit on a number of actions.<br/>
The placement of the the first SapLUWManager is optionan: By specifying a new
luwHandleSessionKey a new handle is created implicitly.<br/>
To explicityly commit or rollback a set of actions, a SapLUWManager-pipe can be used, with
the action-attribute set apropriately.Pipe which scans TIBCO sources in Subversion and creates a report in xml.Sends a message to a Tibco queue.Plain extension to MessageSendingPipe that can be used directly in configurations.
Only extension is that the setters for listener and sender have been made public, and can therefore
be set from the configuration file.Returns the number of bytes or characters in the input.Skip a number of bytes or characters from the input message.XmlValidator that will automatically add the SOAP envelope XSD to the set of XSD's used for validation.
Before the <code>outputSoapBody</code> attribute was introduced, two validators were used for a request-reply pattern (an inputValidator for the request and an outputValidator for the reply).
These inputValidator and outputValidator were identical except for the child element of the SOAP body. Because validators use relatively a lot of memory, the <code>outputSoapBody</code> attribute was added which replaces the outputValidator.
Both the request and the reply are then validated by the inputValidator.
<p>To generate a wsdl with a soap action included one of the following properties must be set to the expected soapAction</p>
<table border="1">
<tr><td>wsdl.${adapterName}.${listenerName}.soapAction</td></tr>
<tr><td>wsdl.${adapterName}.soapAction</td></tr>
<tr><td>wsdl.soapAction</td></tr>
</table>Pipe to wrap or unwrap a message from/into a SOAP Envelope.Sends a message to a Sender for each line of its input, that must be an InputStream.Stream an input stream to an output stream.Pipe for converting TEXT to XML.Breaks up the text input in blocks of a maximum length.
By default, the maximum block length is 160 characters, to enable them to be sent as SMS messages.Pipe that generates an UUID (Universally Unique Identifier).
Only type <code>alphanumeric</code> guarantees a 100% unique identifier, type <code>numeric</code> has a 0.01% chance of exactly the same id in case of multiple calls on the same host within a few milliseconds.Assumes input to be the file name of a ZIP archive, and unzips it to a
directory and/or an XML message.
<br/>
The output of each unzipped item is returned in XML as follows when
collectFileContents is false:
<pre>
<results count="num_of_items">
<result item="1">
<zipEntry>name in ZIP archive of first item</zipEntry>
<fileName>filename of first item</fileName>
</result>
<result item="2">
<zipEntry>name in ZIP archive of second item</zipEntry>
<fileName>filename of second item</fileName>
</result>
...
</results>
</pre>
<br/>
The output of each unzipped item is returned in XML as follows when
collectFileContents is true:
<pre>
<results count="num_of_items">
<result item="1">
<zipEntry>name in ZIP archive of first item</zipEntry>
<fileContent>content of first item</fileContent>
</result>
<result item="2">
<zipEntry>name in ZIP archive of second item</zipEntry>
<fileContent>content of second item</fileContent>
</result>
...
</results>
</pre>
<br/>
By default, this pipe takes care
to produce unique file names, as follows. When the filename within
the archive is:
<pre><basename> + "." + <extension></pre>
then the extracted filename (path omitted) becomes
<pre><basename> + <unique number> + "." + <extension></pre>
<br/>Generate WSDL of parent or specified adapter.XmlValidator that will read the XSD's to use from a WSDL. As it extends the
SoapValidator is will also add the SOAP envelope XSD.Perform an XQuery.Selects a forward, based on XPath evaluationSelects an exitState, based on either the content of the input message, by means
of a XSLT-stylesheet, the content of a session variable or, by default, by returning the name of the root-element.Pipe that validates the input message against an XML Schema.<code>Pipe</code> that checks the well-formedness of the input message.
If <code>root</code> is given then this is also checked.Perform an XSLT transformation with a specified stylesheet.Sends a message to a Sender for each entry of its input, that must be an ZipInputStream. The input of the pipe must be one of:
<ul>
<li>String refering to a filename</li>
<li>File</li>
<li>InputStream</li>
</ul>
The message sent each time to the sender is the filename of the entry found in the archive.
The contents of the archive is available as a Stream or a String in a session variable.
<br/>Pipe that creates a ZIP archive (on action close).
<p>
A chain of zipWriterPipes can be used to create a ZIP archive. You can use the pipe with different actions (see specified below).
Action <code>CLOSE</code> will generate the ZIP archive which is returned as the pipe ouput.
</p>sets URL to the pascal file with label-constants generated by the ADIOS-utility. Default: nnrscons.pasTransformation direction. Default: Adios2XmlSets name of the rekenbox to be calledName of the SessionKey to retrieve the rekenbox name fromSets the name of the forward used when no conversion to XML was performed, because the input was already XML. Default: noconversionCharset to be used to encode the given input string Default: UTF-8Default: ENCODECharacter encoding to be used to when reading input from strings for direction=encode or writing data for direction=decode.(Only used when direction=encode) Defines separator between lines. Special values: <code>auto</code>: platform default, <code>dos</code>: crlf, <code>unix</code>: lf Default: auto(Only used when direction=encode) Each line of encoded data will be at most of the given length (rounded down to nearest multiple of 4). If linelength <= 0, then the output will not be divided into lines Default: 76Stylesheet to apply to each message, before sending itAlternatively: xpath-expression to create stylesheet fromNamespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. For some use other cases (NOT xpathExpression), one entry can be without a prefix, that will define the default namespace.Only valid for xpathexpression Default: textForce the transformer generated from the xpath-expression to omit the xml declaration Default: trueControls multiline behaviour. When set to a value greater than 0, it specifies the number of rows send, in a one block, to the sender. Default: 0For asynchronous communication, the server side may either use the messageID or the correlationID
in the correlationID field of the reply message. Use this property to set the behaviour of the reply-listener. Default: CORRELATIONIDStylesheet to extract correlationid from messageXPath expression to extract correlationid from messageNamespace defintions for correlationIDXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceUri</code>-definitionsKey of a PipelineSession-variable. If specified, the value of the PipelineSession variable is used as input for the XPathExpression or stylesheet, instead of the current input messageStylesheet to extract label from messageXPath expression to extract label from messageNamespace defintions for labelXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceUri</code>-definitionsXPath expression to extract audit trail from messageNamespace defintions for auditTrailXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceUri</code>-definitionsKey of a PipelineSession-variable. If specified, the value of the PipelineSession variable is used as audit trail (instead of the default 'no audit trail)If set <code>true</code>, the input of the Pipe is used to extract audit trail, correlationid and label (instead of the wrapped input) Default: trueNext to common usage in AbstractPipe, also strings in the error/logstore are masked(Only used when hideRegex is not empty and only applies to error/logstore) Default: allIf set <code>true</code>, the XML Well-Formedness of the result is checked Default: falseIf set, besides the XML Well-Formedness the root element of the result is checked to be equal to the value setThe message (e.g. 'receiver timed out') that is returned when the time listening for a reply message
exceeds the timeout, or in other situations no reply message is received.The number of times a processing attempt is retried after a timeout or an exception is caught or after an incorrect reply is received (see also <code>retryXPath</code>) Default: 0The starting number of seconds waited after an unsuccessful processing attempt before another processing attempt is made. Each next retry this interval is doubled with a upper limit of <code>retryMaxInterval</code> Default: 1The maximum number of seconds waited after an unsuccessful processing attempt before another processing attempt is made Default: 600XPath expression evaluated on each technical successful reply. Retry is done if condition returns trueNamespace defintions for retryXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceUri</code>-definitionsIf the previous call was a timeout, the maximum time <i>in seconds</i> after this timeout to presume the current call is also a timeout. Default: 0If set, the pipe returns a message from a file, instead of doing the regular processIf not empty, a TimeoutException is thrown when the result equals this value (for testing purposes only)If not empty, a PipeRunException is thrown when the result equals this value (for testing purposes only)The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward.The SQL query text to be excecuted each time sendMessage() is called. When not set, the input message is taken as the queryJNDI name of datasource to be used, can be configured via jmsRealm, too Default: jdbc.datasource.defaultNamed parameters will be auto-detected by default. Every string in the query which equals <code>?{paramname}</code> will be replaced by the value of the corresponding parameter. The parameters don't need to be in the correct order and unused parameters are skipped.Remove trailing blanks from all result values. Default: trueIf set, the SQL dialect in which the queries are written and should be translated from to the actual SQL dialectWhen set <code>true</code>, exclusive row-level locks are obtained on all the rows identified by the select statement (e.g. by appending ' FOR UPDATE NOWAIT SKIP LOCKED' to the end of the query) Default: falsewhen set and >=0, ' FOR UPDATE WAIT #' is used instead of ' FOR UPDATE NOWAIT SKIP LOCKED' Default: -1If true, then select queries are executed in a way that avoids taking locks, e.g. with isolation mode 'read committed' instead of 'repeatable read'. Default: falseControls automatically whether blobdata is stored compressed and/or serialized in the database Default: falsecontrols whether blobdata is stored compressed in the database Default: trueControls multiline behaviour. If set to a value greater than 0, it specifies the number of rows send in a block to the sender. Default: 0 (one line at a time, no prefix of suffix)If <code>startPosition >= 0</code>, this field contains the start position of the key in the current record (first character is 0);
A sequence of lines with the same key is put in one block and send to the sender. Cannot be used in combination with blockSize. Default: -1If <code>endPosition >= startPosition</code>, this field contains the end position of the key in the current record Default: -1If <code>true</code>, all items in a block are sent at once. If set false, items are sent individually, potentially leveraging block enabled sending capabilities of the sender Default: trueIf <code>combineBlocks = true</code>, this string is inserted at the start of each block. Requires <code>blockSize</code> or <code>startPosition</code> and <code>endPosition</code> to be set too. Default: <block>If <code>combineBlocks = true</code>, this string is inserted at the end of the set of lines. Requires <code>blockSize</code> or <code>startPosition</code> and <code>endPosition</code> to be set too. Default: </block>This string is inserted at the start of each itemThis string is appended at the end of each itemEscape XML characters in each item Default: falseStylesheet to apply to each message, before sending itAlternatively: xpath-expression to create stylesheet fromNamespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. For some use other cases (NOT xpathExpression), one entry can be without a prefix, that will define the default namespace.Only valid for xpathexpression Default: textForce the transformer generated from the xpath-expression to omit the xml declaration Default: trueCharacter encoding to be used to encode message before calculating checksum.Type of checksum to be calculated Default: MD5when set <code>true</code> the string values to compare are considered to be xml strings and before the actual compare both xml strings are transformed to a canonical form Default: falseif <code>true</code> the pipe compresses, otherwise it decompress Default: falseflag indicates whether the message is the content or the path to a file with the contents. for multiple files use ';' as delimiter Default: falseflag indicates whether the result must be written to the message or to a file (filename = message) Default: true when outputDirectory is not set.Default: 2Name of the sessionKey that holds the certificate of the issuer who signed the CRL.Specifies if the first line should be treated as header or as data Default: trueComma separated list of header names. If set, then <code>fileContainsHeader</code> defaults to false. If not set, headers are taken from the first lineCharacter that separates fields Default: ,When set, character casing will be changed for the headerFormat the XML output in easy legible wayThe time <i>in milliseconds</i> the thread will be put to sleep Default: 5000when <code>true</code>, a piperunexception is thrown. otherwise the output is only logged as an error (and returned in a xml string with 'error' tags) Default: truetimeout in seconds of obtaining a result Default: 30the name of the table that contains the mapping Default: mappingthe name of the column labels are stored in Default: labelthe name of the column source values are stored in Default: valueinthe name of the column destination values are stored in Default: valueoutsubstring to start translationsubstring to end translationwhen set <code>true</code> special characters in <code>substringstart</code> and <code>substringend</code> are first translated to their xml equivalents Default: falseWhen <code>true</code>, a PipeRunException is thrown. Otherwise, the output is only logged as an error (and no rollback is performed). Default: trueName of the file containing the result message.comma separated list of attachment properties to listcomma separated list of attachment properties not to list. When specified, 'onlyProperties' is ignoredElement name (not an XPath-expression), qualified via attribute <code>namespaceDefs</code>, used to determine the 'root' of elements to be iterated over, i.e. the root of the set of child elements.
When empty, the pipe will iterate over each direct child element of the rootElement name (not an XPath-expression), qualified via attribute <code>namespaceDefs</code>, used to determine the type of elements to be iterated over, i.e. the element name of each of the child elements.
When empty, the pipe will iterate over any direct child element of the root or specified containerElementXPath-expression used to determine the set of elements to be iterated over, i.e. the set of child elements. When empty, the effective value is \/*\/*, i.e. the pipe will iterate over each direct child element of the root.
Be aware that memory consumption appears to increase with file size when this attribute is used. When possible, use containerElement and/or targetElement instead.If set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) XSLT processor 2.0 or 3.0 will be used, supporting XPath 2.0 or 3.0 respectively, otherwise an XSLT processor 1.0 (org.apache.xalan), supporting XPath 1.0. N.B. Be aware that setting this other than 1 might cause the input file being read as a whole in to memory, as XSLT Streaming is currently only supported by the XSLT Processor that is used for xsltVersion=1 Default: 1If set <code>true</code> namespaces (and prefixes) are removed from the items just before forwarding them to the sender. N.B. This takes place <strong>after</strong> the transformation for <code>elementXPathExpression</code> if that is specifiedKey of the session variable to retrieve the output message from. When left unspecified, the input message is used as the key of the session variable<ul><li><code>string</code>: renders the contents</li><li><code>map</code>: converts a Map<String, String> object to a xml-string (<items><item name='...'>...</item><item name='...'>...</item></items>)</li></ul> Default: stringname of forward returned if principal has not been foundURL or base of URL to be used. When multiple URLs are defined (comma separated list), the first URL is used of which the server has an active statealias used to obtain credentials for authentication to hostusername used in authentication to hostpassword used in authentication to hostwhen set to <code>true</code>, temporary queues are skipped Default: falsewhen set to <code>true</code>, the length of the queue message is returned instead of the queue message self (when parameter <code>queueName</code> is not empty) Default: falseHash Algorithm to use Default: HmacSHA256Character set to use for converting the secret from String to bytes Default: UTF-8Method to use for converting the hash from bytes to String Default: Base64The secret to hash with. Only used if no parameter secret is configured. The secret is only used when there is no authAlias specified, by attribute or parameterauthAlias to retrieve the secret from (password field). Only used if no parameter authAlias is configuredReference to the session variable whose value is to be increasedamount to increment the value. Can be set from the attribute or the parameter 'increment' Default: 1the j2ee role(s) to check, if the user in multiple roles, the first specified role will be matched.forward returned when <code>true</code> Default: thenforward returned when 'false' Default: elsereturn elseforward when input is empty (or thenforward) Default: trueDirection of the transformation. Default: JSON2XMLWhen direction is JSON2XML, it wraps a root element around the converted message.
When direction is XML2JSON, it includes the name of the root element as a key in the converted message. Default: TRUE when JSON2XML and FALSE when XML2JSONFormat the output in easy legible way (currently only for XML)When <code>true</code>, the xml result of the transformation is converted back to json Default: trueNamespace definitions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions Default: j=http://www.w3.org/2013/XSL/jsonIf true, then this pipe will process the XSLT while streaming in a different thread. Can be used to switch streaming xslt off for debugging purposes Default: set by appconstant xslt.streaming.defaultLocation of stylesheet to apply to the input messageSession key to retrieve stylesheet location. Overrides stylesheetName or xpathExpression attributeSize of cache of stylesheets retrieved from styleSheetNameSessionKey Default: 100Alternatively: XPath-expression to create stylesheet fromOmit the XML declaration on top of the output. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheetIf set <code>true</code>, any output is reparsed before being handled as XML again. If not set, the stylesheet is searched for <code>@disable-output-escaping='yes'</code> and the value is set accordingly Default: false, if not set in stylesheetFor xpathExpression only Default: textIf set <code>true</code>, result is pretty-printed. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheetIf set <code>true</code> namespaces (and prefixes) in the input message are removed before transformation Default: falseIf set <code>true</code>, the transformer is enabled to handle lexical events, allowing it for example to process comments and to distinghuish CDATA from escaped text.
Beware that this option can cause spurious NullPointerExceptions due to a race condition in streaming XSLT 1.0 processing in Xalan 2.7.2 Default: falseIf set <code>true</code> empty tags in the output are removed after transformation Default: falseIf set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan). <code>0</code> will auto-detect Default: 0If true, then this pipe will process the XSLT while streaming in a different thread. Can be used to switch streaming xslt off for debugging purposes Default: set by appconstant xslt.streaming.defaultLocation of stylesheet to apply to the input messageSession key to retrieve stylesheet location. Overrides stylesheetName or xpathExpression attributeSize of cache of stylesheets retrieved from styleSheetNameSessionKey Default: 100Alternatively: XPath-expression to create stylesheet fromOmit the XML declaration on top of the output. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheetIf set <code>true</code>, any output is reparsed before being handled as XML again. If not set, the stylesheet is searched for <code>@disable-output-escaping='yes'</code> and the value is set accordingly Default: false, if not set in stylesheetNamespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. For some other use cases (NOT xpathExpression), one entry can be without a prefix, that will define the default namespace.
If left empty, an the xpathExpression will match any namespaceFor xpathExpression only Default: textIf set <code>true</code>, result is pretty-printed. If not set, the value specified in the stylesheet is followed Default: false, if not set in stylesheetIf set <code>true</code> namespaces (and prefixes) in the input message are removed before transformation Default: falseIf set <code>true</code>, the transformer is enabled to handle lexical events, allowing it for example to process comments and to distinghuish CDATA from escaped text.
Beware that this option can cause spurious NullPointerExceptions due to a race condition in streaming XSLT 1.0 processing in Xalan 2.7.2 Default: falseIf set <code>true</code> empty tags in the output are removed after transformation Default: falseIf set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan). <code>0</code> will auto-detect Default: 0Auth Alias for the SharedSecret to be used when signing the JWT (using the HmacSHA256 algorithm)Shared secret to be used when signing the JWT (using the HmacSHA256 algorithm)JWT expirationTime in seconds, 0 to disable Default: 600sets transformation direction. Possible values
<ul>
<li>"Xml2Label": transform an XML file to ascii</li>
<li>"Label2Xml": transform an ascii file to XML</li>
</ul>
default: Nonewhether or not to write results to the logfile (testtool4<instance.name>) Default: falsewhether or not to write results to system out Default: falseSet to <code>true</code> when the pipeline is triggered by a user (e.g. using an http based listener
that will add a securityHandler session key) and you don't want the listener to check whether the user
is autorised and/or you want the enforce the roles as configured for the Ladybug Default: falseSet to <code>true</code> to enable Ladybug's report generator for the duration of the scheduled report runs
then revert it to its original setting Default: falseWhen set, reports with a full path (path + name) that matches with the specified regular expression are skipped. For example, \"/Unscheduled/.*\" or \".*SKIP\".Default: falseDefault: falseThe scenario sub directory to executethe larva log level: one of [debug], [pipeline messages prepared for diff], [pipeline messages], [wrong pipeline messages prepared for diff], [wrong pipeline messages], [step passed/failed], [scenario passed/failed], [scenario failed], [totals], [error] Default: wrong pipeline messagesDefault: 100msthe larva timeout in milliseconds Default: 10000when <code>true</code>, the memberOf attribute is also searched in all the found members Default: trueUrl to context to search in, e.g. 'ldaps://DOMAIN.EXT'.Host part of ldapProviderUrl. Only used when ldapProviderUrl not specifiedPort of ldapProviderUrl. Only used when ldapProviderUrl not specifiedIndication to use ldap or ldaps in ldapProviderUrl. Only used when ldapProviderUrl not specified Default: falseBaseDN, e.g. CN=USERS,DC=DOMAIN,DC=EXT Default: falseAlias used to obtain credentials to connect to ldap serverUsername used to obtain credentials to connect to ldap serverPassword used to obtain credentials to connect to ldap serverPipeForward used when an exception is caughtThe dn of the group to search in when the parameter dnSearchIn is not setThe dn of the member to search for when the parameter dnFind is not setwhen <code>true</code>, the member attribute is also searched in all the found members Default: truePath to the folder that serves as the root of this virtual filesystem. All specifications of folders or files are relative to this root.
When the root is left unspecified, absolute paths to files and folders can be usedWhether the LocalFileSystem tries to create the root folder if it doesn't exist yet.If parameter [action] is set, then the attribute action value will be overridden with the value of the parameter.Filename to operate on. If not set, the parameter filename is used. If that is not set either, the input is usedDestination for move, copy or rename. If not set, the parameter destination is used. If that is not set either, the input is usedFolder that is scanned for files when action=list. When not set, the root is scannedIf <code>true</code>: if a non-existing folder is part of the fileName, it will be created. Default: falseIf set <code>true</code>, for actions create, write, move, copy or rename, the destination file is overwritten if it already exists Default: falseFor action=append: If set to a positive number, the file is rotated each day, and this number of files is kept. The inputFolder must point to the directory where the file resides Default: 0For action=append: If set to a positive number, the file is rotated when it has reached the specified size, and the number of files specified in numberOfBackups is kept. Size is specified in plain bytes, suffixes like 'K', 'M' or 'G' are not recognized. The inputFolder must point to the directory where the file resides Default: 0For the actions write and append, with rotateSize>0: the number of backup files that is kept. The inputFolder must point to the directory where the file resides Default: 0Filter of files to look for in inputFolder e.g. '*.inp'. Works with actions move, copy, delete and listFilter of files to be excluded when looking in inputFolder. Works with actions move, copy, delete and listIf set to <code>true</code> then the folder and the content of the non empty folder will be deleted.If set to <code>true</code> then the system specific line separator will be appended to the file after executing the action. Works with actions write and append Default: falseCharset to be used for read and write actionIf set to true then the folder will be deleted if it is empty after processing the action. Works with actions delete, readDelete and moveOutputFormat Default: XMLFilter for action <code>list</code>. Specify <code>FILES_ONLY</code>, <code>FOLDERS_ONLY</code> or <code>FILES_AND_FOLDERS</code>. Default: FILES_ONLYIf set to <code>true</code> the ThreadContext parameters will be exported from the current PipeLine up in the call tree. Default: falseIf set {@code true} the pipe will never forward to the {@code ExceptionForward} even if an error occurred during execution. Default: falseDefault: OBFUSCATEAction to be taken when pipe is executed.Recipients to be used during encryption stage. If multiple, separate with ';' (semicolon)Emails of the senders. This will be used to verify that all the senders have signed the given message.
If not set, and the action is verify; this pipe will validate that at least one person has signed.
For signing action, it needs to be set to the email that was used to generate the private key
"that is being used for this process.Path to the private key. It will be used when signing or decrypting.Password for the private key.Path to the recipient's public key. It will be used for encryption and verification.The lowercase characters to use. Default: ('a'..'z')The uppercase characters to use. Default: ('A'..'Z')The numbers to use. Default: ('0'..'9')The signs to use. Default: (;:_%$#@!><)The number of lowercase characters in the generated password. Default: 2The number of digits in the generated password. Default: 2The number of sign characters in the generated password. Default: 2The number of uppercase characters in the generated password. Default: 2name of sessionkey that holds the hash which will be used to validate the password (input of the pipe)session key that contains the document that the attachments will be attached to. Only used when action is set to 'combine' Default: defaultMainDocumentSessionKeyThe session key used to store the main conversion result document. Only to be used when action is set to 'convert'. Default: documentsThe session-key in which result files are stored when documents are converted to PDF.
<p>
Conversion result files are stored as messages in the session, under keys numbered based
on the value set here. If #isSaveSeparate() is {@code false} then only the main
document is stored in the session, if it is {@code true} then each attachment is stored
separately.
</p>
<p>
For example, if a file is converted that has 2 attachments and #setSaveSeparate(boolean)
is set to {@code true} then there will be the following 3 session keys (assuming the default value
is unchanged):
<ol>
<li>{@code pdfConversionResultFiles1}</li>
<li>{@code pdfConversionResultFiles2}</li>
<li>{@code pdfConversionResultFiles3}</li>
</ol>
Each session key will contain a FileMessage referencing the contents of that PDF.
</p> Default: pdfConversionResultFilessession key that contains the filename to be attached. Only used when the action is set to 'combine' Default: defaultFileNameToAttachSessionKeyfonts folder to load the fonts. If not set then a temporary folder will be created to extract fonts from fonts.zip everytime. Having fontsDirectory to be set will improve startup timecharset to be used to decode the given input message in case the input is not binary but character stream Default: UTF-8aspose license location including the file name. It can also be used without license but there some restrictions on usage. If license is in resource, license attribute can be license file name. If the license is in somewhere in filesystem then it should be full path to file including filename and starting with file://// prefix. classloader.allowed.protocols property should contain 'file' protocolwhen sets to false, converts the file including the attachments attached to the main file. when it is true, saves each attachment separately Default: falsedirectory to save resulting pdf files after conversion. If not set then a temporary directory will be created and the conversion results will be stored in that directory.when set to true, external resources, such as stylesheets and images found in HTML pages, will be loaded from the internet Default: falseKey of the session variable to store the input inValue to store in the <code>pipeLineSession</code>. If not set, the input of the pipe is storedKey of session variable to store systemdate in Default: systemDateFormat to store date in Default: full ISO format: DateUtils.fullIsoFormatTime zone to use for the formatter Default: the default time zone for the JVMSet to a time <i>in milliseconds</i> to create a value that is different to the previous returned value by a PutSystemDateInSession pipe in
this virtual machine or <code>-1 to disable</code>. The thread will sleep for the specified time before recalculating a new value. Set the
timezone to a value without Daylight Saving Time (like GMT+1) to prevent this pipe to generate two equal value's when the clock is set back.
<b>note:</b> When you're looking for a GUID parameter for your XSLT it might be better to use
<param name="guid" pattern="{hostname}_{uid}"/>, see Parameter. Default: -1If <code>true</code>, the date/time returned will always be 2001-12-17 09:30:47 (for testing purposes only). It is overridden by the value of the pipelinesession key <code>stub4testtool.fixeddate</code> when it exists Default: falseIf set to 'true' then current time stamp in millisecond will be stored in the sessionKey Default: falseFixed name of the rekenbox (or wrapper) to be called. If empty, the name is determined from the requestDirectory on server where rekenbox-executable can be foundRekenbox template directory on serverDirectory on server where input and output files are (temporarily) storedFormat of commandline of rekenbox. Possible values
"straight": rekenbox is called like: rekenbox.exe inputFileName outputFileName templateDir
"switches": rekenbox is called like: rekenbox.exe /IinputFileName /UoutputFileName /PtemplateDir
"redirected": rekenbox is called like: rekenbox.exe inputFileName templateDir > outputFileName; (This method has not been fully tested)Extension of rekenbox-executableIf <code>true</code>, input and output files are removed after the call to the rekenbox is finishedKey in pipeLineSession to store rekenbox name inFirst part of filenames that communicate requests and replies to rekenboxMaximal number that will be concatenated to dataFilenamePrefixName of the cache from which items are to be removedXPath expression to extract cache key from request messageOutput type of xpath expression to extract cache key from request message, must be 'xml' or 'text' Default: textNamespace defintions for keyXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitionsStylesheet to extract cache key from request message. Use in combination with cacheEmptyKeys to inhibit caching for certain groups of request messagesSession key to use as input for transformation of request message to key by keyXPath or keyStyleSheetname of the key of the entry in the <code>pipelinesession</code> to remove. if this key is empty the input message is interpretted as key. for multiple keys use ',' as delimiterSets the string that is searched for. Newlines can be represented
by the #setLineSeparatorSymbol(String).Sets the string that will replace each of the occurrences of the find-string. Newlines can be represented
* by the #setLineSeparatorSymbol(String).sets the string that will represent the line-separator in the #setFind(String) and #setReplace(String) strings.Replace all characters that are non-printable according to the XML specification with
the value specified in #setNonXmlReplacementCharacter(String).
<p>
<b>NB:</b> This will only replace or remove characters considered non-printable. This
will not check if a given character is valid in the particular way it is used. Thus it will
not remove or replace, for instance, a single {@code '&'} character.
</p>
<p>
See also:
<ul>
<li>XmlEncodingUtils replaceNonValidXmlCharacters</li>
<li><a href="https://www.w3.org/TR/xml/#charsets">Character ranges specified in the XML Specification</a></li>
</ul>
</p> Default: falsecharacter that will replace each non-valid xml character (empty string is also possible) (use &#x00bf; for inverted question mark) Default: empty stringWhether to allow Unicode supplementary characters (like a smiley) during replaceNonValidXmlCharacters Default: falseShould properties (values between <code>${</code> and <code>}</code>) be resolved. Default: falseThe destination, aka smb://xxx/yyy shareThe SMB share usernameThe SMB share passwordAlias used to obtain credentials for the SMB sharelogon/authentication domain, in case the user account is bound to a domain such as Active Directory.when <code>true</code>, intermediate directories are created also Default: falsecontrols whether hidden files are seen or not Default: falseHostname of the SMB share.Port to connect to. Default: 445Type of the authentication either 'NTLM' or 'SPNEGO'.
When setting SPNEGO, the host must use the FQDN, and must be registered on the KDC with a valid SPN. Default: SPNEGOalias used to obtain credentials for the smb sharethe smb share usernamethe smb share passwordNTLM only: logon/authentication domain, in case the user account is bound to a domain such as Active Directory.May not contain '\\' characters. The destination share, aka smb://xxx/yyy share.SPNEGO only:
Key Distribution Center, typically hosted on a domain controller.
Stored in <code>java.security.krb5.kdc</code>SPNEGO only:
Kerberos Realm, case sensitive. Typically upper case and the same as the domain name.
An Active Directory domain acts as a Kerberos Realm.
Stored in <code>java.security.krb5.realm</code>Name of the SapSystem used by this objectOne of: begin, commit, rollback, releaseSession key under which information is storedURL or base of URL to be used. When multiple URLs are defined (comma separated list), the first URL is used of which the server has an active statealias used to obtain credentials for authentication to hostusername used in authentication to hostpassword used in authentication to hostThe name of the queue which is used for browsing one queueProtocol of Tibco service to be calledMaximum time in milliseconds to wait for a reply. 0 means no timeout. (Only for messageProtocol=RR) Default: 5000If empty then derived from queueName (if $messagingLayer='P2P' then '$applicationFunction' else '$operationName_$operationVersion)Action to be taken when pipe is executed. Default: SIGNThe signing algorithm Default: ALGORITHM_DEFAULTCryptography providerif true, the signature is (expected to be) base64 encoded Default: trueKeystore to obtain signing keyType of keystore, can be pkcs12 or pem Default: pkcs12Alias used to obtain keystore passwordKeystore passwordAlias in keystoreAlias used to obtain keystoreAlias passwordKeystoreAlias passwordKey manager algorithm. Can be left empty to use the servers default algorithmNumber of bytes (for binary input) or characters (for character input) to skip. An empty byte array or string is returned when skip is larger than the length of the input. Default: 0If length>=0 only these number of bytes (for binary input) or characters (for character input) is returned. Default: -1If set, each record has to end with this string. If a line read doesn't end with this string more lines are added (including line separators) until the total record ends with the given stringMarks the start of a new record. If set, a new record is started when this line is read.If set to <code>false</code>, the inputstream is not closed after it has been used Default: true(only used for parameter <code>httprequest</code>) when true the first part is not put in a session key but returned to the pipeline (as the result of this pipe) Default: false(only used when <code>extractfirststringpart=true</code>) the session key to put the xml in with info about the stored parts Default: <code>multipartxml</code>(only used for parameter <code>httprequest</code>) when true parts are checked for antivirus scan returncode. these antivirus scan parts have been added by another application (so the antivirus scan is not performed in this pipe). for each file part an antivirus scan part have been added by this other application (directly after this file part) Default: false(only used for parameter <code>httprequest</code> and when <code>checkantivirus=true</code>) name of antivirus scan status parts Default: <code>antivirus_rc</code>(only used for parameter <code>httprequest</code> and when <code>checkantivirus=true</code>) name of antivirus scan message parts Default: <code>antivirus_msg</code>(only used for parameter <code>httprequest</code> and when <code>checkantivirus=true</code>) message of antivirus scan parts which indicates the antivirus scan passed Default: <code>pass</code>(only used for parameter <code>httprequest</code> and when <code>checkantivirus=true</code>) when true and the antivirusfailed forward is specified and the antivirus scan did not pass, a soap fault is returned instead of only a plain error message Default: false(only used for parameter <code>httprequest</code> and when <code>checkantivirus=true</code>) if not empty and the antivirusfailed forward is specified and the antivirus scan did not pass, the error message (or soap fault) is stored in this session key and the first string part is returned to the pipelineThe xml tag to encapsulate the text inControls whether the lines of the input are places in separated <line> tags Default: falseReplace all non xml chars (not in the <a href="http://www.w3.org/tr/2006/rec-xml-20060816/#nt-char">character range as specified by the xml specification</a>)
with the inverted question mark (0x00bf) Default: trueControls whether the text to encapsulate should be put in a cdata section Default: trueSet the maximum number of characters of a block Default: 160If true, try to break up the message at spaces, instead of in the middle of words Default: falseFormat of generated string. Default: alphanumericDirectory to extract the archive toSessionkey with a directory value to extract the archive toIf set <code>false</code>, only a small summary (count of items in zip) is returned Default: trueIf set <code>true</code>, the contents of the files in the zip are returned in the result xml message of this pipe. Please note this can consume a lot of memory for large files or a large number of files Default: falseComma separated list of file extensions. Files with an extension which is part of this list will be base64 encoded. All other files are assumed to have UTF-8 when reading it from the zip and are added as escaped xml with non-unicode-characters being replaced by inverted question mark appended with #, the character number and ; Default: falseIf set <code>false</code>, a suffix is added to the original filename to be sure it is unique Default: falseIf set <code>true</code>, the path of the zip entry will be preserved. Otherwise, the zip entries will be extracted to the root folder Default: falseIf set <code>true</code>, validation of directory is ignored Default: falseeither parent (adapter of pipeline which contains this pipe) or input (name of adapter specified by input of pipe), adapter must be within the same Configuration Default: parentname of the file (resource) on the classpath to read the xquery fromname of the file on the file system to read the xquery froma string to compare the result of the xpathExpression (or the input-message itself) to. If not specified, a non-empty result leads to the 'then'-forward, an empty result to 'else'-forwardforward returned when output is <code>true</code> Default: thenforward returned when output is <code>false</code> Default: elsexpath expression to be applied to the input-message. if not set, no transformation is doneRegular expression to be applied to the input-message (ignored if <code>xpathExpression</code> is specified).
The input-message <b>fully</b> matching the given regular expression leads to the 'then'-forwardIf set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan) Default: 2namespace definitions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions.controls namespace-awareness of XSLT transformation Default: truestylesheet may return a string representing the forward to look up Default: <i>a stylesheet that returns the name of the root-element</i>xpath-expression that returns a string representing the forward to look up. It's possible to refer to a parameter (which e.g. contains a value from a sessionkey) by using the parameter name prefixed with $Namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions. For some use other cases (NOT xpathExpression), one entry can be without a prefix, that will define the default namespace.Forward returned when the pipename derived from the stylesheet could not be found.Forward returned when the content, on which the switch is performed, is empty. if <code>emptyforwardname</code> is not specified, <code>notfoundforwardname</code> is used.If set to <code>2</code> or <code>3</code> a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan). <code>0</code> will auto-detect Default: 0Selected forward name will be stored in the specified session key.Session key that will be used to get the forward name from.controls namespace-awareness of XSLT transformation Default: trueSession key used to store contents of each zip entry Default: zipdataIf set to <code>false</code>, a string containing the contents of the entry is placed under the session key, instead of the inputstream to the contents Default: trueIf set to <code>false</code>, the inputstream is not closed after it has been used Default: trueCharset used when reading the contents of the entry (only used if streamingContents=false) Default: utf-8Only for action='write': If set to <code>true</code>, the fields 'crc-32', 'compressed size' and 'uncompressed size' in the zip entry file header are set explicitly (note: compression ratio is zero) Default: falseCollectors must be opened before you can write content to them, after it's closed you can no longer write to it. Default: WRITESession key used to refer to collection. Must be specified with another value if multiple CollectorPipes are active at the same time in the same session Default: collection1. This method first stores all database jobs that can are found in the Quartz Scheduler in a Map.
2. It then loops through all records found in the database.
3. If the job is found, remove it from the Map and compares it with the already existing scheduled job.
Only if they differ, it overwrites the current job.
If it is not present it add the job to the scheduler.
4. Once it's looped through all the database jobs, loop through the remaining jobs in the Map.
Since they have been removed from the database, remove them from the Quartz SchedulerConfiguration on which job operatesAdapter on which job operatesReceiver on which job operatesName of the jobDescription of the jobCRON expression that determines the frequency of execution.
Can <code>not</code> be used in combination with Interval.Triggers the Job at the specified number of milliseconds. Keep cronExpression empty in order to use interval.
Value <code>0</code> may be used to run once at startup of the application.
A value of 0 in combination with function 'sendMessage' will set dependencyTimeout on the IbisLocalSender to -1 to keep waiting indefinitely instead of 60 seconds for the adapter to start.Number of threads that may execute concurrently Default: 1Number of messages displayed in ibisconsole Default: 10The number of seconds the database driver will wait for a statement to execute. If the limit is exceeded, a TimeoutException is thrown. 0 means no timeout Default: 0The SQL query text to be executedJNDI name of datasource to be used Default: jdbc.datasource.defaultThe number of seconds the database driver will wait for a statement to execute. If the limit is exceeded, a TimeoutException is thrown. 0 means no timeout Default: 0JavaListener to send the message tomessage to be sent into the pipelineIMonitorAdapter that uses a sender to send its message.The functional name of the object.A Trigger that starts its life with type = ALARM. The type of the trigger can be changed dynamically.A Trigger that starts its life with type = CLEARING. The type of the trigger can be changed dynamically.Shared HTTPSession, implements SharedResource so it can be set in the Configuration.xmlThe functional name of the object.Timeout in ms of obtaining a connection/result. Default: 10000Authentication alias used for authentication to the hostUsername used for authentication to the hostPassword used for authentication to the hostIf the Configuration should automatically start all Adapters and Jobs.Configurations should be wired through Spring, which in turn should call #setBeanName(String).
Once the ConfigurationContext has a name it should not be changed anymore, hence
super.setBeanName(String) only sets the name once.
If not created by Spring, the setIdCalled flag in AbstractRefreshableConfigApplicationContext wont be set, allowing the name to be updated.
The DisplayName will always be updated, which is purely used for logging purposes.Fire & Forget protocolRequest-Reply protocolAutomatically determine the type of the outgoing jakarta.jms.Message based
on the value of Message#isBinary().Create the outgoing message as TextMessage.Create the outgoing message as BytesMessage.auto or auto_acknowledge: Specifies that the session is to automatically acknowledge consumer receipt of
messages when message processing is complete.client or client_acknowledge: Specifies that the consumer is to acknowledge all messages delivered in this session.
The Frank application will acknowledge all messages processed correctly. The skipping of the acknowledgement of messages
processed in error will cause them to be redelivered, thus providing an automatic retry.dups or dups_ok_acknowledge: Specifies that the session is to "lazily" acknowledge the
delivery of messages to the consumer. "Lazy" means that the consumer can delay the acknowledgment
of messages to the server until a convenient time; meanwhile the server might redeliver messages.
This mode reduces the session overhead. If JMS fails, the consumer may receive duplicate messages.ClearSafe(SSL protocol only)Confidential(SSL protocol only)Privatelist files in a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input messageshow info about a single file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input messageread a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input messagelike <code>read</code>, but deletes the file after it has been readmove a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message, to a folder specified by attribute <code>destination</code> or parameter <code>destination</code>copy a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message, to a folder specified by attribute <code>destination</code> or parameter <code>destination</code>delete a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input messagecreate a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input messageremove a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input messageCreates file and writes contents, specified by parameter <code>contents</code> or input message, to a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message.
At least one of the parameters must be specified. The missing parameter defaults to the input message. For streaming operation, the parameter <code>filename</code> must be specified.(only for filesystems that support 'append') append contents, specified by parameter <code>contents</code> or input message, to a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message.
At least one of the parameters must be specified. The missing parameter defaults to the input message. For streaming operation, the parameter <code>filename</code> must be specified.create empty file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input messagechange the name of a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message, to the value specified by attribute <code>destination</code> or parameter <code>destination</code>(for MailFileSystems only:) forward an existing file, specified by parameter <code>contents</code> or input message, to a file, to an email address specified by attribute <code>destination</code> or parameter <code>destination</code>Specific to FileSystemSenderWithAttachmentsCreate a documentDelete a documentGet the content of a document (and optional the properties)Perform a query that returns propertiesUpdate the properties of an existing documentGet the (meta)data of a folder or documentDetermine action based on the incoming CmisEventFor queries that return dataFor queries that update a BLOBFor queries that update a CLOBTo execute Oracle PL/SQL packageFor queries that return no dataFire & Forget protocolRequest-Reply protocoluse the generated messageId as the correlationId in the selector for response messagesset the correlationId of the pipeline as the correlationId of the message sent, and use that as the correlationId in the selector for response messagesdo not automatically set the correlationId of the message sent, but use use the value found in that header after sending the message as the selector for response messagesThe input message is sent unchanged as character data, like text, XML or JSON, with possibly parameter data appendedThe input message is sent unchanged as binary dataYields a x-www-form-urlencoded form entityYields a multipart/form-data form entityYields a MTOM multipart/related form entityRead the contents of an entry. Configuration requirements:
<ul>
<li>parameter 'entryName', resolving to RDN of entry to read</li>
<li>optional xml-inputmessage containing attributes to be returned</li>
</ul>Create an attribute or an entry. Configuration requirements:
<ul>
<li>parameter 'entryName', resolving to RDN of entry to create</li>
<li>xml-inputmessage containing attributes to create</li>
</ul>Update an attribute or an entry. Configuration requirements:
<ul>
<li>parameter 'entryName', resolving to RDN of entry to update</li>
<li>xml-inputmessage containing attributes to update</li>
<li>optional parameter 'newEntryName', new RDN of entry</li>
</ul>Delete an attribute or an entry. Configuration requirements:
<ul>
<li>parameter 'entryName', resolving to RDN of entry to delete</li>
<li>when manipulationSubject is set to attribute: xml-inputmessage containing attributes to be deleted</li>
</ul>Search for an entry in the direct children of the specified root. Configuration requirements:
<ul>
<li>parameter 'entryName', resolving to RDN of entry to read</li>
<li>parameter 'filterExpression', specifying the entries searched for</li>
<li>optional attribute 'attributesReturned' containing attributes to be returned</li>
</ul>Search for an entry in the complete tree below the specified root. Configuration requirements:
<ul>
<li>parameter 'entryName', resolving to RDN of entry to read</li>
<li>parameter 'filterExpression', specifying the entries searched for</li>
<li>optional attribute 'attributesReturned' containing attributes to be returned</li>
</ul>Get a list of the direct children of the specifed root. Configuration requirements:
<ul>
<li>parameter 'entryName', resolving to RDN of entry to read</li>
<li>optional attribute 'attributesReturned' containing attributes to be returned</li>
</ul>Get a copy of the complete tree below the specified root. Configuration requirements:
<ul>
<li>parameter 'entryName', resolving to RDN of entry to read</li>
<li>optional attribute 'attributesReturned' containing attributes to be returned</li>
</ul>Check username and password against LDAP specifying principal and credential using parameters. Configuration requirements:
<ul>
<li>parameter 'principal', resolving to RDN of user who's password should be verified</li>
<li>parameter 'credentials', password to verify</li>
</ul>Typical user change-password operation (one of the two methods to modify the unicodePwd attribute in AD (http://support.microsoft.com/kb/263991)). Configuration requirements:
<ul>
<li>parameter 'entryName', resolving to RDN of user who's password should be changed</li>
<li>parameter 'oldPassword', current password, will be encoded as required by Active Directory (a UTF-16 encoded Unicode string containing the password surrounded by quotation marks) before sending it to the LDAP server. It's advised to set attribute hidden to true for parameter.</li>
<li>parameter 'newPassword', new password, will be encoded as required by Active Directory (a UTF-16 encoded Unicode string containing the password surrounded by quotation marks) before sending it to the LDAP server. It's advised to set attribute hidden to true for parameter.</li>
</ul>to mask the entire stringto only mask the first half of the stringDon't stop the receiver when an error occurs.If an error occurs (e.g. connection is lost) the receiver will be stopped and marked as ERROR
Once every <code>recover.adapters.interval</code> it attempts to (re-) start the receiver.Stop the receiver when an error occurs.Support a current transaction; create a new one if none exists.Support a current transaction; execute non-transactionally if none exists.Support a current transaction; throw an exception if no current transaction exists.Create a new transaction, suspending the current transaction if one exists.Do not support a current transaction; rather always execute non-transactionally.Do not support a current transaction; throw an exception if a current transaction exists.Renders the contents of the first node (in combination with xslt or xpath). Please note that
if there are child nodes, only the contents are returned, use <code>XML</code> if the xml tags are requiredRenders an xml-nodeset as an xml-string (in combination with xslt or xpath). This will include the xml tagsRenders the CONTENTS of the first node as a nodeset
that can be used as such when passed as xslt-parameter (only for XSLT 1.0).
Please note that the nodeset may contain multiple nodes, without a common root node.
N.B. The result is the set of children of what you might expect it to be...Renders XML as a DOM document; similar to <code>node</code>
with the distinction that there is always a common root node (required for XSLT 2.0)Converts the result to a Date, by default using formatString <code>yyyy-MM-dd</code>.
When applied as a JDBC parameter, the method setDate() is usedConverts the result to a Date, by default using formatString <code>HH:mm:ss</code>.
When applied as a JDBC parameter, the method setTime() is usedConverts the result to a Date, by default using formatString <code>yyyy-MM-dd HH:mm:ss</code>.
When applied as a JDBC parameter, the method setTimestamp() is usedSimilar to <code>DATETIME</code>, except for the formatString that is <code>yyyy-MM-dd HH:mm:ss.SSS</code> by defaultConverts the result from a XML formatted dateTime to a Date.
When applied as a JDBC parameter, the method setTimestamp() is usedConverts the result to a Number, using decimalSeparator and groupingSeparator.
When applied as a JDBC parameter, the method setDouble() is usedConverts the result to an IntegerConverts the result to a BooleanForces the parameter value to be treated as binary data (e.g. when using a SQL BLOB field).
When applied as a JDBC parameter, the method setBinaryStream() or setBytes() is usedForces the parameter value to be treated as character data (e.g. when using a SQL CLOB field).
When applied as a JDBC parameter, the method setCharacterStream() or setString() is usedUsed for StoredProcedure OUT parameters when the database type is a {@code CURSOR} or java.sql.JDBCType#REF_CURSOR.
See also org.frankframework.jdbc.StoredProcedureQuerySender.
<br/>
DEPRECATED: Type LIST can also be used in larva test to Convert a List to an xml-string (<items><item>...</item><item>...</item></items>)TemporaryPermanentNo wrapping or unwrapping will be doneTry to auto-detect the valueifsa2tibcoRegularBusiness Integration ServicesTransform an Adios-XML file to ASCII-AdiosTransform an ASCII-Adios file to Adios-XMLGzip format; also used when direction is compress and resultIsContent=<code>true</code>
or when direction is decompress and messageIsContent=<code>true</code>Zip format; also used when direction is compress and resultIsContent=<code>false</code>
or when direction is decompress and messageIsContent=<code>false</code>Encrypts the given input. Requires the publicKey to be set to recipients public key, and recipients to be set to recipients email addresses.Encrypts and then signs the given input. On top of the requirements for Encrypt action, signing requires senders to bet set for user's email; and secretKey & secretPassword to be set to private key's path and it's password (password is optional, if private key does not have protection).Decrypts the given input. Requires secretKey and secretPassword to bet set to private key's path and it's password. Just like signing, password is not required, if private key does not have protection.Decrypts and verifies the given input. On top of the requirements for Decrypt action, verification expects list of senders' email's and corresponding public keys. However, sender emails does not have to be set, and in that case, this pipe will only validate that someone signed the input.Request-ReplyFire & Forgetsigns the inputverifies a signaturethe UUID will not have a fixed length which will be about 42a UUID with fixed length 31 will be generatedTo initiate a new collectionAdd an item to to an existing collectionCombination of WRITE and CLOSE: Add an item to to an existing collection, then finalize the collectionFinalize the collectionNo loggingLogs information from adapter level messagesLogs information from pipe messagesThe value of the parameter, or the base for transformation using xpathExpression or stylesheet, or formatting.Key of a PipelineSession-variable. <br/>If specified, the value of the PipelineSession variable is used as input for
the xpathExpression or stylesheet, instead of the current input message. <br/>If no xpathExpression or stylesheet are
specified, the value itself is returned. <br/>If the value '*' is specified, all existing sessionkeys are added as
parameter of which the name starts with the name of this parameter. <br/>If also the name of the parameter has the
value '*' then all existing sessionkeys are added as parameter (except tsReceived)key of message context variable to use as source, instead of the message found from input message or sessionKey itselfInstead of a fixed <code>sessionKey</code> it's also possible to use a XPath expression applied to the input message to extract the name of the session-variable.If the result of sessionKey, xpathExpression and/or stylesheet returns null or an empty string, this value is returnedComma separated list of methods (<code>defaultValue</code>, <code>sessionKey</code>, <code>pattern</code>, <code>value</code> or <code>input</code>) to use as default value. Used in the order they appear until a non-null value is found. Default: <code>defaultValue</code>Value of parameter is determined using substitution and formatting, following MessageFormat syntax with named parameters. The expression can contain references
to <code>session-variables</code> or other <code>parameters</code> using the {name-of-parameter} and is formatted using java.text.MessageFormat.
<br/><b>NB: When referencing other <code>parameters</code> these MUST be defined before the parameter using pattern substitution.</b>
<br/>
<br/>
If for instance <code>fname</code> is a parameter or session-variable that resolves to Eric, then the pattern
'Hi {fname}, how do you do?' resolves to 'Hi Eric, do you do?'.<br/>
The following predefined reference can be used in the expression too:<ul>
<li>{now}: the current system time</li>
<li>{uid}: an unique identifier, based on the IP address and java.rmi.server.UID</li>
<li>{uuid}: an unique identifier, based on the IP address and java.util.UUID</li>
<li>{hostname}: the name of the machine the application runs on</li>
<li>{username}: username from the credentials found using authAlias, or the username attribute</li>
<li>{password}: password from the credentials found using authAlias, or the password attribute</li>
<li>{fixeddate}: fake date, for testing only</li>
<li>{fixeduid}: fake uid, for testing only</li>
<li>{fixedhostname}: fake hostname, for testing only</li>
</ul>
A guid can be generated using {hostname}_{uid}, see also
<a href="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/server/uid.html">http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/server/uid.html</a> for more information about (g)uid's or
<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/uuid.html">http://docs.oracle.com/javase/1.5.0/docs/api/java/util/uuid.html</a> for more information about uuid's.
<br/>
When combining a date or time <code>pattern</code> like {now} or {fixeddate} with a DATE, TIME, DATETIME or TIMESTAMP <code>type</code>, the effective value of the attribute
<code>formatString</code> must match the effective value of the formatString in the <code>pattern</code>.If set <code>true</code> pattern elements that cannot be resolved to a parameter or sessionKey are silently resolved to an empty stringIf set (>=0) and the length of the value of the parameter falls short of this minimum length, the value is padded Default: -1If set (>=0) and the length of the value of the parameter exceeds this maximum length, the length is trimmed to this maximum length Default: -1If set to <code>true</code>, the value of the parameter will not be shown in the log (replaced by asterisks) Default: <code>false</code>Set the mode of the parameter, which determines if the parameter is an INPUT, OUTPUT, or INOUT.
This parameter only has effect for StoredProcedureQuerySender.
An OUTPUT parameter does not need to have a value specified, but does need to have the type specified.
Parameter values will not be updated, but output values will be put into the result of the
StoredProcedureQuerySender.
<b/>
If not specified, the default is INPUT.Folder that is scanned for files. If not set, the root is scannedFolder where files are stored <i>while</i> being processedFolder where files are stored <i>after</i> being processedFolder where files are stored <i>after</i> being processed, in case the exit-state was not equal to <code>success</code>Folder where messages from the error folder can be put on Hold, temporarilyFolder where a copy of every file that is received is storedIf set to <code>true</code>, the folders to look for files and to move files to when being processed and after being processed are created if they are specified and do not exist Default: falseIf set <code>true</code>, the file processed will be deleted after being processed, and not stored Default: falseNumber of copies held of a file with the same name. Backup files have a dot and a number suffixed to their name. If set to 0, no backups will be kept. Default: 0If set <code>true</code>, the destination file will be deleted if it already exists Default: falseIf <code>true</code>, the file modification time is used in addition to the filename to determine if a file has been seen before Default: falseMinimal age of file <i>in milliseconds</i>, to avoid receiving a file while it is still being written Default: 1000Key of Property to use as messageId. If not set, the filename of the file as it was received in the inputFolder is used as the messageId Default: for MailFileSystems: Message-IDIf set <code>true</code>, no browsers for process folders are generated Default: falseFilter of files to look for in inputFolder e.g. '*.inp'.Filter of files to be excluded when looking in inputFolder.If set, an XML with all message properties is provided under this keyName of the JMS destination (queue or topic) to use for sending replies. If <code>useReplyTo</code>=<code>true</code>,
the sender specified reply destination takes precedence over this one.Value of the JMSType field of the reply message Default: not set by applicationControls mode that reply messages are sent with Default: NON_PERSISTENTSets the priority that is used to deliver the reply message. Ranges from 0 to 9. Effectively the default priority is set by JMS to 4, <code>-1</code> means not set and thus uses the JMS default Default: -1Time <i>in milliseconds</i> after which the reply-message will expire Default: 0sessionKey to store the SOAP header of the incoming message Default: soapHeaderThe JMS jakarta.jms.Message class for the outgoing message.
Currently supported are MessageClass#TEXT for JMS TextMessage,
MessageClass#BYTES for JMS BytesMessage, or MessageClass#AUTO for auto-determination
based on whether the input Message is binary or character.
<p>
Defaults to MessageClass#AUTO, unless the default is overridden in AppConstants with property {@code jms.messageClass.default}
</p>Type of the messageing destination.
This function also sets the <code>useTopicFunctions</code> field,
that controls whether Topic functions are used or Queue functions. Default: QUEUEIf not transacted, the way the application informs the JMS provider that it has successfully received a message. Default: autoOnly applicable for topics Default: DURABLEUsed when destinationType = QUEUE.
The JNDI-name of the queueConnectionFactory to use to connect to a <code>queue</code> if #isTransacted() returns <code>false</code>.
The corresponding connection factory should be configured not to support XA transactions.Used when destinationType = TOPIC.
The JNDI-name of the connection factory to use to connect to a <i>topic</i> if #isTransacted() returns <code>false</code>.
The corresponding connection factory should be configured not to support XA transactions.Transform the value of the correlationid to a hexadecimal value if it starts with id: (preserving the id: part).
Useful when sending messages to MQ which expects this value to be in hexadecimal format when it starts with id:, otherwise generating the error: MQJMS1044: String is not a valid hexadecimal number Default: falsePrefix to check before executing correlationIdToHex. If empty (and correlationIdToHex equals true) all correlationid's are transformed, this is useful in case you want the entire correlationId to be transformed (for example when the receiving party doesn't allow characters like a colon to be present in the correlationId). Default: id:The time <i>in milliseconds</i> it takes for the message to expire. If the message is not consumed before, it will be lost. Must be a positive value for request/reply type of messages, 0 disables the expiry timeout Default: 0If set (>=0) and the length of the correlationId exceeds this maximum length, the correlationId is trimmed from the left side of a string to this maximum length Default: -1If set, the value of this attribute is used as a selector to filter messages. Default: 0 (unlimited)If set <code>false</code>, the destinationName is used directly instead of performing a JNDI lookup Default: truemaps to the field context.security_authenticationusername to connect to context, maps to context.security_credentialsclass to use as initial context factorySets the value of providerURLmaps to the field context.security_protocolmaps to the field context.url_pkg_prefixesusername to connect to context, maps to context.security_principalauthentication alias, may be used to override principal and credential-settingswhen true, then PollingListener container will execute getRawMessage() only when hasRawMessageAvailable() has returned true. This avoids rolling back a lot of XA transactions, that appears to be problematic on MS SQL Server Default: true(only used when <code>peekUntransacted</code>=<code>true</code>) peek query to determine if the select query should be executed. Peek queries are, unlike select queries, executed without a transaction and without a rowlock Default: selectQueryJNDI name of datasource to be used, can be configured via jmsRealm, too Default: jdbc.datasource.defaultinforms the sender that the obtained connection is from a pool (and thus connections are reused and never closed) Default: trueAlias of the table, that can be used in selectCondition Default: t(optional) Comma separated list of fields determining the order in which messages are processed(optional) Maximum length of strings to be stored in commentField, or -1 for unlimited Default: 1000Additional condition for a row to belong to this TableListener. Impacts all process statesIndex of the field in the ImportParameterList of the RFC function that contains the correlationId Default: 0Name of the field in the ImportParameterList of the RFC function that contains the correlationIdIndex of the field in the ImportParameterList of the RFC function that contains the whole request message contents Default: 0Name of the field in the ImportParameterList of the RFC function that contains the whole request message contentsIndex of the field in the ExportParameterList of the RFC function that contains the whole reply message contents Default: 0Name of the field in the ExportParameterList of the RFC function that contains the whole reply message contentsControls if the returned package content is db2 format or xml format.
Possible values:
<ul>
<li>select:</li> xml content s expected
<li><i>anything else</i>:</li> db2 content is expected
</ul>When <code>true</code>, the value of the first column of the first row (or the startrow) is returned as the only result, as a simple non-xml value Default: falseWhen <code>true</code> and <code>scalar</code> is also <code>true</code>, but returns no value, one of the following is returned:
<ul>
<li>'[absent]' no row is found</li>
<li>'[null]' a row is found, but the value is a SQL-NULL</li>
<li>'[empty]' a row is found, but the value is a empty string</li>
</ul> Default: falseValue used in result as contents of fields that contain no value (sql-null) Default: <i>empty string</i>Query that can be used to obtain result of side-effect of update-query, like generated value of sequence. Example: SELECT mysequence.currval FROM dualNamed parameters will be auto-detected by default. Every string in the query which equals <code>?{paramname}</code> will be replaced by the value of the corresponding parameter. The parameters don't need to be in the correct order and unused parameters are skipped.when <code>true</code>, the result contains besides the returned rows also includes a header with information about the fetched fields Default: application default (true)Remove trailing blanks from all result values. Default: trueWhen <code>true</code>, the result of sendMessage is the reply of the request. Default: trueWhen set to <code>false</code>, the Outputstream is not closed after BLOB or CLOB has been written to it Default: trueCharset used when reading a stream (that is e.g. going to be written to a BLOB or CLOB). When empty, the stream is copied directly to the BLOB, without conversionIf true and scalar=false, multiline indented XML is produced Default: falseParameter that is used, if specified and not empty, to determine the destination. Overrides the <code>destination</code> attributeName of the queue the reply is expected on. This value is sent in the JMSReplyTo-header with the message. Default: a dynamically generated temporary destination(Only used when <code>synchronous</code>=<code>true</code> and <code>replyToName</code> is set). Indicates whether the server uses the correlationId from the pipeline, the correlationId from the message or the messageId in the correlationId field of the reply. This requires the sender to have set the correlationId at the time of sending. Default: MESSAGEIDValue of the JMSType field Default: not set by applicationSets the priority that is used to deliver the message. Ranges from 0 to 9. Defaults to -1, meaning not set. Effectively the default priority is set by JMS to 4 Default: -1SOAP encoding style URISOAP service namespace URIName of parameter containing SOAP header Default: soapHeadersession key to store SOAP header of reply Default: replySoapHeaderA list of JMS headers of the response to add to the PipeLineSessionWhen set larger than 0 and used as a child of an IteratingPipe, then the database calls are made in batches of this size. Only for queryType=other. Default: 0URL or base of URL to be usedParameter that is used to obtain URL; overrides url-attribute. Default: urlThe HTTP Method used to execute the request Default: <code>GET</code>Content-Type (superset of mimetype + charset) of the request, for <code>POST</code>, <code>PUT</code> and <code>PATCH</code> methods Default: text/html, when postType=<code>RAW</code>Charset of the request. Typically only used on <code>PUT</code> and <code>POST</code> requests. Default: UTF-8Comma separated list of parameter names which should be set as HTTP headersComma separated list of parameter names that should not be added as request or body parameter, or as HTTP header, if they are empty. Set to '*' for this behaviour for all parametersIf <code>true</code>, the HTML response is transformed to XHTML Default: falseIf set, the status code of the HTTP response is put in the specified sessionKey and the (error or okay) response message is returned.
Setting this property has a side effect. If a 4xx or 5xx result code is returned and if the configuration does not implement
the specific forward for the returned HTTP result code, then the success forward is followed instead of the exception forward.The maximum number of concurrent connections Default: 10The maximum number of times the execution is retried Default: 1 (for repeatable messages) else 0Endpoint to obtain OAuth accessToken. If <code>authAlias</code> or <code>username</code>( and <code>password</code>) are specified,
then a PasswordGrant is used, otherwise a ClientCredentials grant. The obtained accessToken will be added to the regular requests
in an HTTP Header 'Authorization' with a 'Bearer' prefix.If set to a non-negative value, then determines the time (in seconds) after which the token will be refreshed. Otherwise the token
will be refreshed when it is half way its lifetime as defined by the <code>expires_in</code> clause of the token response,
or when the regular server returns a 401 status with a challenge.
If not specified, and the accessTokens lifetime is not found in the token response, the accessToken will not be refreshed preemptively. Default: -1Alias used to obtain client_id and client_secret for authentication to <code>tokenEndpoint</code>Client_id used in authentication to <code>tokenEndpoint</code>Client_secret used in authentication to <code>tokenEndpoint</code>Space or comma separated list of scope items requested for accessToken, e.g. <code>read write</code>. Only used when <code>tokenEndpoint</code> is specifiedif set true, clientId and clientSecret will be added as Basic Authentication header to the tokenRequest, instead of as request parametersProxy hostProxy port Default: 80Alias used to obtain credentials for authentication to proxyProxy usernameProxy passwordProxy realmCreate a pre-emptive login context for the proxy connection(s).Disables the use of cookies, making the sender completely stateless Default: falseresource URL to keystore or certificate to be used for authentication. If none specified, the JVMs default keystore will be used.Type of keystore Default: pkcs12Authentication alias used to obtain keystore passwordDefault password to access keystoreKey manager algorithm. Can be left empty to use the servers default algorithmAlias to obtain specific certificate or key in keystoreAuthentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code>Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code>Resource URL to truststore to be used for authenticating peer. If none specified, the JVMs default truststore will be used.Authentication alias used to obtain truststore passwordDefault password to access truststoreType of truststore Default: jksTrust manager algorithm. Can be left empty to use the servers default algorithmIf <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peerIf <code>true</code>, self signed certificates are accepted Default: falseIf <code>true</code>, CertificateExpiredExceptions are ignored Default: falseIf <code>true</code>, a redirect request will be honoured, e.g. to switch to HTTPS Default: trueIf true, besides http status code 200 (OK) also the code 301 (MOVED_PERMANENTLY), 302 (MOVED_TEMPORARILY) and 307 (TEMPORARY_REDIRECT) are considered successful Default: falseControls whether connections checked to be stale, i.e. appear open, but are not. Default: trueUsed when StaleChecking=<code>true</code>. Timeout after which an idle connection will be validated before being used. Default: 5000 msMaximum Time to Live for connections in the pool. No connection will be re-used past its timeToLive value. Default: 900 sMaximum Time for connection to stay idle in the pool. Connections that are idle longer will periodically be evicted from the pool Default: 10 sSecure socket protocol (such as 'TLSv1.2') to use when a SSLContext object is generated. Default: TLSv1.2Allows you to choose which CipherSuites are used when connecting to an endpoint. Works in tandem with {@code protocol} as the provided Suite may not be valid for the provided Protocol
See the Java Security Standard Algorithm Names Specification for all available options. Note that these may differ depending on the JRE you're using.If set <code>true</code> the input is written to the log file, at DEBUG level Default: falseuserId on the smtphostSet the default value of the subject: header, if not specified in message itselfSet the default from: header, if not specified in message itselfWhen this name is used, it will be followed by a number which is equal to the node's position Default: attachmentwhen messageType is not specified defaultMessageType will be used Default: text/plainwhen messageBase64 is not specified defaultMessageBase64 will be used Default: falseNDR return address when mail cannot be delivered. This adds a Return-Path header Default: MAIL FROM attributeComma separated list of domains to which mails can be send, domains not on the list are filtered out. Empty allows all domainsPossible values are <code>E</code> (error store), <code>M</code> (message store), <code>L</code> (message log for Pipe) or <code>A</code> (message log for Receiver).<br/>
Receiver will always set type to <code>E</code> for errorStorage and always set type to <code>A</code> for messageLog. SenderPipe will set type to <code>L</code> for messageLog (when type isn't specified).<br/>
See MessageStoreSender for type <code>M</code>. Default: <code>E</code> for errorStorage on Receiver<br/><code>A</code> for messageLog on Receiver<br/><code>L</code> for messageLog on PipeThe name of the column slotids are stored in Default: SLOTIDThe name of the column types are stored in Default: TYPEThe name of the column that stores the hostname of the server Default: HOSTThe name of the sequence used to generate the primary key, for DBMSes that use sequences, like Oracle Default: seq_ibisstoreIf set to <code>true</code>, checks are performed if the table exists and is properly created Default: falseThe type of the column message themselves are stored inThe type of the column that contains the primary key of the tableThe type of the column the timestamps are stored inThe type of the columns messageId and correlationId, slotId and comments are stored in. N.B. <code>(100)</code> is appended for id's, <code>(1000)</code> is appended for comments.The time (in days) to keep the record in the database before making it eligible for deletion by a cleanup process. when set to -1, the record will live on forever Default: 30Schema owner to be used to check the database Default: <current_schema> (only for oracle)If set to <code>true</code>, the full message is stored with the log. Can be set to <code>false</code> to reduce table size, by avoiding to store the full message Default: trueTimeout (in seconds) of transaction started to process a message. Default: <code>0</code> (use system default)The <code>transactionAttribute</code> declares transactional behavior of execution. It applies both to database transactions and XA transactions.
The pipeline uses this to start a new transaction or suspend the current one when required.
For developers: it is equal to <a href=\"https://docs.oracle.com/javaee/7/tutorial/transactions003.htm\">EJB transaction attribute</a>.
Possible values for transactionAttribute:
<table border=\"1\">
<tr><th>transactionAttribute</th><th>callers Transaction</th><th>Pipeline excecuted in Transaction</th></tr>
<tr><td colspan=\"1\" rowspan=\"2\">Required</td> <td>none</td><td>T2</td></tr>
<tr><td>T1</td> <td>T1</td></tr>
<tr><td colspan=\"1\" rowspan=\"2\">RequiresNew</td> <td>none</td><td>T2</td></tr>
<tr><td>T1</td> <td>T2</td></tr>
<tr><td colspan=\"1\" rowspan=\"2\">Mandatory</td> <td>none</td><td>error</td></tr>
<tr><td>T1</td> <td>T1</td></tr>
<tr><td colspan=\"1\" rowspan=\"2\">NotSupported</td><td>none</td><td>none</td></tr>
<tr><td>T1</td> <td>none</td></tr>
<tr><td colspan=\"1\" rowspan=\"2\">Supports</td> <td>none</td><td>none</td></tr>
<tr><td>T1</td> <td>T1</td></tr>
<tr><td colspan=\"1\" rowspan=\"2\">Never</td> <td>none</td><td>none</td></tr>
<tr><td>T1</td> <td>error</td></tr>
</table> Default: SupportsIf set, input is taken from this session key, instead of regular inputIf set, this fixed value is taken as input, instead of regular inputIf set and the input is empty, this fixed value is taken as inputIf set <code>true</code>, the result of the pipe is replaced with the original input (i.e. the input before configured replacements of <code>getInputFromSessionKey</code>, <code>getInputFromFixedValue</code> or <code>emptyInputReplacement</code>)If set, the pipe result is copied to a session key that has the name defined by this attribute. The
pipe result is still written as the output message as usual.The maximum number of threads that may messages simultaneously.
A value of 0 indicates an unlimited number of threads. Default: 0If set (>=0) and the character data length inside a xml element exceeds this size, the character data is chomped (with a clear comment)If set, the character data in this element is stored under a session key and in the message replaced by a reference to this session key: {sessionKey: + <code>elementToMoveSessionKey</code> + }(Only used when <code>elementToMove</code> is set) Name of the session key under which the character data is stored Default: ref_ + the name of the elementLike <code>elementToMove</code> but element is preceded with all ancestor elements and separated by semicolons (e.g. 'adapter;pipeline;pipe')If durationThreshold >=0 and the duration of the message processing exceeded the value specified (in milliseconds) the message is logged informatory to be analyzed Default: -1If set <code>true</code>, compacted messages in the result are restored to their original format (see also #setElementToMove(java.lang.String))Collect and aggregate Message size statisticswhen set to <code>true</code> a record is written to the security log when the pipe has finished successfully(only used when <code>writeToSecLog=true</code>) comma separated list of keys of session variables that is appended to the security log recordwhen set, the value in AppConstants is overwritten (for this pipe only)Regular expression to mask strings in the log. For example, the regular expression <code>(?<=<password>).*?(?=</password>)</code>
will replace every character between keys '<password>' and '</password>'. <b>note:</b> this feature is used at adapter level,
so a {@code hideRegex} set on one pipe affects all pipes in the pipeline (and multiple values in different pipes are combined into a single regex).
The regular expressions are matched against part of the log lines. See int)
with {@code mode = 0} for how regular expressions are matched and replaced.Identical to the <code>soapBody</code> attribute except that it's used for the output message instead of the input message. For more information see <a href=\"#note1\">note 1</a>Name of the child element of the SOAP header, or a comma separated list of names to choose from (only one is allowed) (wsdl generator will use the first element) (use empty value to allow an empty soap header, for example to allow element x and an empty soap header use: x,)Can be used when the SOAP header element exists multiple timesSOAP envelope XSD version to use Default: 1.1Allow plain XML, without a SOAP Envelope, too. Be aware that setting this true inhibits the capability to test for exit specific response roots in SOAP messages Default: falseIgnore namespaces in the input message which are unknown. If the XSD used has elementFormDefault=unqualified, it is necessary to set this to true. Be aware, however, that
this will inhibit the validator to detect validation failures of namespaceless subelements of the SoapBody. Default: true when <code>schema</code> or <code>noNamespaceSchemaLocation</code> is used, false otherwisePairs of URI references (one for the namespace name, and one for a hint as to the location of a schema document defining names for that namespace name).<br/>
The syntax is the same as for schemaLocation attributes in instance documents: e.g, "http://www.example.com file%20name.xsd".<br/>
The user can specify more than one XML Schema in the list.<br/>
<b>Note</b> that spaces are considered separators for this attributed. This means that, for example, spaces in filenames should be escaped to %20.A uri reference as a hint as to the location of a schema document with no target namespace.Name of the response root element, or a comma separated list of element names. The validation fails if the root element is not present in the list. N.B. for WSDL generation only the first element is usedEnable full schema grammar constraint checking, including checking which
may be time-consuming or memory intensive. Currently, particle unique
attribution constraint checking and particle derivation restriction
checking are controlled by this option.
<p>
see property
http://apache.org/xml/features/validation/schema-full-checking
</p> Default: <code>false</code>Should the XmlValidator throw a PipeRunexception on a validation error. If not, a forward with name 'failure' must be defined. Default: falseIf set: key of session variable to store reasons of mis-validation in Default: failureReasonLike <code>reasonSessionKey</code> but stores reasons in xml format and more extensive Default: xmlFailureReasonIf set <code>true</code>, the input is assumed to be the name of the file to be validated. Otherwise the input itself is validated Default: falseIf set <code>true</code>, the namespace from schemalocation is added to the schema document as targetnamespace Default: falseComma separated list of schemaLocations which are excluded from an import or include in the schema documentIf set <code>true</code>, the comparison for importedSchemaLocationsToIgnore is done on base filename without any path Default: falseComma separated list of namespaces which are excluded from an import or include in the schema documentIf set <code>true</code>, send warnings to logging and console about syntax problems in the configured schema('s).
Alternatively, warnings can be switched off using suppression properties XSD_VALIDATION_WARNINGS_SUPPRESS_KEY, XSD_VALIDATION_ERROR_SUPPRESS_KEY and XSD_VALIDATION_FATAL_ERROR_SUPPRESS_KEY Default: trueIf set <code>true</code>, the number for caching validators in appConstants is ignored and no caching is done (for this validator only) Default: falseIf set to <code>1.0</code>, Xerces's previous XML Schema factory will be used, which would make all XSD 1.1 features illegal. The default behaviour can also be set with <code>xsd.processor.version</code> property. Default: <code>1.1</code>Key of session variable to store the name of the root elementKey of session variable to store the namespace of the root elementSession key for retrieving a schemaKey of session variable to store number of items processed, i.e. the position or index in the set of items to be processed. When handling the first item, the value will be 1.The maximum number of items returned. The (default) value of 0 means unlimited, all available items will be returned. Special forward maxItemsReached can be configured to follow Default: 0Expression evaluated on each result and forwards to [stopConditionMet] forward if configured.
Iteration stops if condition returns anything other than an empty result. To test for the root element to have an attribute 'finished' with the value 'yes', the expression <code>*[@finished='yes']</code> can be used.
This can be used if the condition to stop can be derived from the item result. To stop after a maximum number of items has been processed, use <code>maxItems</code>.
Previous versions documented that <code>position()=2</code> could be used. This is not working as expected; Use maxItems insteadWhen <code>true</code> ignore any exception thrown by executing sender Default: falseControls whether all the results of each iteration will be collected in one result message. If set <code>false</code>, only a small summary is returned.
Setting this attributes to <code>false</code> is often required to enable processing of very large files. N.B. Remember in such a case that setting transactionAttribute to NotSupported might be necessary too Default: truePostprocess each partial result, to remove the xml-declaration, as this is not allowed inside an xml-document Default: falseWhen <code>true</code> the input is added to the result in an input element Default: falseWhen <code>true</code> duplicate input elements are removed, i.e. they are handled only once Default: falseWhen set <code>true</code>, the calls for all items are done in parallel (a new thread is started for each call). when collectresults set <code>true</code>, this pipe will wait for all calls to finish before results are collected and pipe result is returned Default: falseMaximum number of child threads that may run in parallel simultaneously (combined total of all threads calling this pipe). Use <code>0</code> for unlimited threads Default: 0If defined and empty or false, then this element and all its children are ignored