diff --git a/Dockerfile b/Dockerfile index 5dc7e847..dbce6b16 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # Keep in sync with version in frank-runner.properties. Detailed instructions can be found in CONTRIBUTING.md. # Check whether java-orig files have changed in F!F and update custom code (java and java-orig files) accordingly -ARG FF_VERSION=9.0.0-20241026.042336 +ARG FF_VERSION=9.0.0-20241129.042326 FROM docker.io/frankframework/frankframework:${FF_VERSION} as ff-base # Copy dependencies diff --git a/docker-compose.zaakbrug.dev.yml b/docker-compose.zaakbrug.dev.yml index 4b13d6f2..11dbd151 100644 --- a/docker-compose.zaakbrug.dev.yml +++ b/docker-compose.zaakbrug.dev.yml @@ -17,7 +17,7 @@ services: build: context: . args: - FF_VERSION: ${FF_VERSION:-9.0.0-20241026.042336} + FF_VERSION: ${FF_VERSION:-9.0.0-20241129.042326} image: wearefrank/zaakbrug:${ZAAKBRUG_VERSION:-latest} container_name: zaakbrug.dev environment: diff --git a/frank-runner.properties b/frank-runner.properties index ff97667c..ba6380d0 100644 --- a/frank-runner.properties +++ b/frank-runner.properties @@ -1,4 +1,4 @@ classloader.type=ScanningDirectoryClassLoader # Keep in sync with version in Dockerfile. Detailed instructions can be found in CONTRIBUTING.md. -ff.version=9.0.0-20241026.042336 \ No newline at end of file +ff.version=9.0.0-20241129.042326 \ No newline at end of file diff --git a/src/main/FrankConfig.xsd b/src/main/FrankConfig.xsd index 44042d99..9fb6ebeb 100644 --- a/src/main/FrankConfig.xsd +++ b/src/main/FrankConfig.xsd @@ -1,5 +1,5 @@ - + Container of Adapters that belong together. @@ -140,21 +140,20 @@ 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> + <tr><th>situation</th><th>input listener</th><th>Pipeline</th><th>inProcess storage</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>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 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>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>no changes, input message remains on input available for listener</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> + not present in inProcess storage</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> + the message is removed from the input queue and either (one of) still in inProcess storage</li> </ul> <p><b>commit or rollback</b><br/> @@ -170,7 +169,6 @@ - @@ -231,14 +229,9 @@ - - - The 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: 5 - - - The number of times a processing attempt is automatically retried after an exception is caught or rollback is experienced. If <code>maxRetries &lt; 0</code> the number of attempts is infinite Default: 1 + The number of times a processing attempt is automatically retried after an exception is caught or rollback is experienced. If <code>maxRetries &lt; 0</code> the number of attempts is infinite Default: 1, or 3 for JMS Listeners or other listeners implementing IKnowsDeliveryCount. @@ -248,12 +241,12 @@ - XPath expression to extract correlationid from message + XPath expression to extract correlationId from message - Namespace defintions for correlationIDXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions + Namespace definitions for correlationIDXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions @@ -268,7 +261,7 @@ - Namespace defintions for labelXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions + Namespace definitions for labelXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions @@ -325,6 +318,32 @@ Number of connection attempts to put the adapter in warning status Default: 5 + + + After a message has an error in processing, there is a small delay before processing the next + message before processing the next message or retrying the failed message. + This is so that errors coming from external systems so not overload those external systems. + <p> + The delay doubles after every failure, until the maximum set here is reached. See: + <a href="https://en.wikipedia.org/wiki/Exponential_backoff">https://en.wikipedia.org/wiki/Exponential_backoff</a>. + </p> + <p> + If the transaction timeout can be determined, then the backoff-delay is capped by half the transaction timeout to + avoid messages automatically timing out. + </p> + <p> + There is no backoff-time after a message is successfully processed. After a message is successfully processed, + the actual backoff-time is reset to 1 second. + </p> + <p> + If set to 0, then there is no delay after messages that had an error. + </p> + <p> + If this is not set on the receiver, then a default is taken from the configuration property `${receiver.defaultMaxBackoffDelay}` which + defaults to 60 seconds. + </p> + + @@ -332,87 +351,6 @@ - - - Placeholder class to allow legacy configuration notations <code>&lt;param type='number' /&gt;</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: STRING - - - - - - - - Name of the parameter - - - - - - - - - URL 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: 0 - - - - - Namespace 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 specified - - - - - Default username that is used when a <code>pattern</code> containing {username} is specified - - - - - Default password that is used when a <code>pattern</code> containing {password} is specified - - - - - - - - - - - - Required in each Adapter to transform incoming messages. A pipeline @@ -1108,10 +1046,10 @@ - + - + @@ -1140,6 +1078,15 @@ + + + + + + + + + @@ -1158,10 +1105,30 @@ Name of the parameter - - - - + + + The 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 itself + + + + + Instead 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. + + URL to a stylesheet that wil be applied to the contents of the message or the value of the session-variable. @@ -1188,9 +1155,44 @@ When set <code>true</code> namespaces (and prefixes) in the input message are removed before the stylesheet/xpathExpression is executed Default: <code>false</code> - - - + + + If the result of sessionKey, xpathExpression and/or stylesheet returns null or an empty string, this value is returned + + + + + Comma 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>. + + Alias used to obtain username and password, used when a <code>pattern</code> containing {username} or {password} is specified @@ -1206,11 +1208,40 @@ Default password that is used when a <code>pattern</code> containing {password} is specified - - - - - + + + If set <code>true</code> pattern elements that cannot be resolved to a parameter or sessionKey are silently resolved to an empty string + + + + + If set (>=0) and the length of the value of the parameter falls short of this minimum length, the value is padded Default: -1 + + + + + If set (>=0) and the length of the value of the parameter exceeds this maximum length, the length is trimmed to this maximum length Default: -1 + + + + + If 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. + + + + + @@ -1266,6 +1297,22 @@ + + + + + + + + + + + + + + + + @@ -1333,7 +1380,16 @@ /&gt; </code></pre> - </p> + </p> + + listener that looks in a FileSystem for files. + When a file is found, it is moved to an in-process folder, so that it isn't found more than once. + <br/> + The information specified by #setMessageType(IMessageType) is then passed to the pipeline.<br><br><b>INFO</b><p>To avoid problems with duplicate filenames in folders like the <code>errorFolder</code> or <code>processedFolder</code>, + you should configure either <code>overwrite=&quot;true&quot;</code>, configure <code>numberOfBackups</code> to a value larger than 0, or + configure an <code>inProcessFolder</code> and <code>fileTimeSensitive=&quot;true&quot;</code>. + These options can be used together as well.</p><br><b>WARNING</b><p>In addition to the above, prior to release 9.0 it was not sufficient to configure <code>inProcessFolder</code> and <code>fileTimeSensitive</code> + to avoid potential duplicate filename errors. Prior to release 9.0, it is recommended to configure <code>numberOfBackups</code> to avoid these issues.</p> @@ -1384,6 +1440,18 @@ + + File listener for an FTP connection. + + listener that looks in a FileSystem for files. + When a file is found, it is moved to an in-process folder, so that it isn't found more than once. + <br/> + The information specified by #setMessageType(IMessageType) is then passed to the pipeline.<br><br><b>INFO</b><p>To avoid problems with duplicate filenames in folders like the <code>errorFolder</code> or <code>processedFolder</code>, + you should configure either <code>overwrite=&quot;true&quot;</code>, configure <code>numberOfBackups</code> to a value larger than 0, or + configure an <code>inProcessFolder</code> and <code>fileTimeSensitive=&quot;true&quot;</code>. + These options can be used together as well.</p><br><b>WARNING</b><p>In addition to the above, prior to release 9.0 it was not sufficient to configure <code>inProcessFolder</code> and <code>fileTimeSensitive</code> + to avoid potential duplicate filename errors. Prior to release 9.0, it is recommended to configure <code>numberOfBackups</code> to avoid these issues.</p> + @@ -1667,6 +1735,19 @@ + + + Baseclass of a IPushingListener that enables a Receiver + to receive messages from Servlets. + + + + + + + + + Listener that allows a Receiver to receive messages as a REST webservice. @@ -1689,6 +1770,18 @@ + + File listener for an SMB2 or SMB3 share. + + listener that looks in a FileSystem for files. + When a file is found, it is moved to an in-process folder, so that it isn't found more than once. + <br/> + The information specified by #setMessageType(IMessageType) is then passed to the pipeline.<br><br><b>INFO</b><p>To avoid problems with duplicate filenames in folders like the <code>errorFolder</code> or <code>processedFolder</code>, + you should configure either <code>overwrite=&quot;true&quot;</code>, configure <code>numberOfBackups</code> to a value larger than 0, or + configure an <code>inProcessFolder</code> and <code>fileTimeSensitive=&quot;true&quot;</code>. + These options can be used together as well.</p><br><b>WARNING</b><p>In addition to the above, prior to release 9.0 it was not sufficient to configure <code>inProcessFolder</code> and <code>fileTimeSensitive</code> + to avoid potential duplicate filename errors. Prior to release 9.0, it is recommended to configure <code>numberOfBackups</code> to avoid these issues.</p> + @@ -1697,15 +1790,6 @@ - - - - - - - - - Implementation of a IPushingListener, @@ -1726,6 +1810,18 @@ + + File listener for an SFTP connection. + + listener that looks in a FileSystem for files. + When a file is found, it is moved to an in-process folder, so that it isn't found more than once. + <br/> + The information specified by #setMessageType(IMessageType) is then passed to the pipeline.<br><br><b>INFO</b><p>To avoid problems with duplicate filenames in folders like the <code>errorFolder</code> or <code>processedFolder</code>, + you should configure either <code>overwrite=&quot;true&quot;</code>, configure <code>numberOfBackups</code> to a value larger than 0, or + configure an <code>inProcessFolder</code> and <code>fileTimeSensitive=&quot;true&quot;</code>. + These options can be used together as well.</p><br><b>WARNING</b><p>In addition to the above, prior to release 9.0 it was not sufficient to configure <code>inProcessFolder</code> and <code>fileTimeSensitive</code> + to avoid potential duplicate filename errors. Prior to release 9.0, it is recommended to configure <code>numberOfBackups</code> to avoid these issues.</p> + @@ -1926,6 +2022,10 @@ + + + + @@ -1968,9 +2068,9 @@ - + - + Name of the listener @@ -2028,7 +2128,9 @@ - If <code>true</code>, the file modification time is used in addition to the filename to determine if a file has been seen before Default: false + If <code>true</code>, the file modification time is used in addition to the filename to determine if a file has been seen previously. + <br/> + This setting is only supported for filesystem listeners that implement IWritableFileSystem. Default: false @@ -2073,7 +2175,7 @@ - + @@ -2154,12 +2256,12 @@ - + - + By default, the JmsListener takes the Correlation-ID (if present) as the ID that has to be used as Correlation-ID of the reply. @@ -2191,8 +2293,8 @@ - - + + @@ -2262,7 +2364,7 @@ - + @@ -2290,7 +2392,7 @@ - + @@ -2493,9 +2595,9 @@ - + - + Determines the contents of the message that is sent to the Pipeline. can be one of: @@ -2512,9 +2614,9 @@ - - - + + + @@ -2707,10 +2809,10 @@ - + - + @@ -2785,7 +2887,7 @@ - + @@ -2989,7 +3091,7 @@ - + @@ -3180,8 +3282,8 @@ - - + + @@ -3338,12 +3440,8 @@ - + - - - - @@ -3515,7 +3613,7 @@ - + @@ -3534,7 +3632,7 @@ - + @@ -3588,9 +3686,7 @@ - - @@ -3602,7013 +3698,1479 @@ - + - + + + ESB (Enterprise Service Bus) extension of JmsSender. + - - - - + + + + + - - - - - - + - General Cache provider. + JMS sender which will add an IMS header to the message and call the MQ specific logic. - 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>. + <p>See JmsSender for configuration</p> - - + + - - - - - - - - - - The maximum number of elements in memory, before they are evicted Default: 100 - - - - - Either <code>LRU</code>=Least Recent Use,<code>LFU</code>=Least Frequent Use or <code>FIFO</code>=First In - First Out Default: LRU - - - - - If <code>true</code>, the elements in the cache are eternal, i.e. never expire Default: false - - - + + + This class sends messages with JMS. + + + + + + + + + + + + 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> + + + + + + + + + + + + + + + + + + - The amount of time <i>in seconds</i> to live for an element from its creation date Default: 36000 + protocol of ESB service to be called + + + - + - The amount of time <i>in seconds</i> to live for an element from its last accessed or modified date Default: 36000 + receiver timeout, in milliseconds Default: 20000 (20s) - + - If <code>true</code>, the elements that are evicted from memory are spooled to disk Default: false + if messageProtocol=<code>RR</code> then <code>deliveryMode</code> defaults to <code>NON_PERSISTENT</code> Default: not set by application + + + - + - The maximum number of elements on disk, before they are removed Default: 10000 + if messageProtocol=<code>RR</code> then <code>replyTimeout</code> defaults to <code>timeout</code> Default: 5000 - + - If <code>true</code>, the cache is stored on disk and survives configuration reloads & JVM restarts. Default: false + if messageProtocol=<code>RR</code> then <code>synchronous</code> defaults to <code>true</code> Default: false - + - How often to run the disk store expiry thread Default: 600 + if 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) - - - - - - - - name of the cache, will be lowercased Default: <code>&lt;ownerName&gt;</code>_cache - - - - - xpath expression to extract cache key from request message - - - - - output type of xpath expression to extract cache key from request message Default: text - - - - - - - - namespace defintions for keyxpath. must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code> definitions - - - + + + + + + + + - stylesheet to extract cache key from request message. Use in combination with cacheEmptyKeys to inhibit caching for certain groups of request messages + If <code>true</code>, messages sent are put in a SOAP envelope Default: false - + + + + + + + + + + + + + + + + + + + + - session key to use as input for transformation of request message to key by keyxpath or keystylesheet + If <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 - + + + - controls whether empty keys are used for caching. when set true, cache entries with empty keys can exist. Default: false + (Only for <code>synchronous=true</code>). Maximum time in ms to wait for a reply. 0 means no timeout. Default: 5000 - + + - xpath expression to extract value to be cached key from response message. Use in combination with cacheEmptyValues to inhibit caching for certain groups of response messages + Controls mode that messages are sent with Default: not set by application - - - + - - - namespace defintions for valuexpath. must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code> definitions - - - + + - stylesheet to extract value to be cached from response message + If <code>true</code>, messages sent are put in a SOAP envelope Default: false - + + + - session key to use as input for transformation of response message to cached value by valuexpath or valuestylesheet + SOAPAction string sent as message property - + + + + + + + + + + + + + + + - controls whether empty values will be cached. when set true, empty cache entries can exist for any key. Default: false + The transaction code that should be added in the header, must be 8 characters - - - + + + + + + + + + + - - - Domparser om AFM-XML berichten om te zetten in edifactberichten (voor de backoffice). - + - - - - - + + + + - + + + + + + - Sender to work with the Amazon S3 Filesystem. + ESB (Enterprise Service Bus) extension of JmsTransactionalStorage. + <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 - <code>FileAttribute.</code>. - This prefix will be not be part of the actual metadata property name. + 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> - The string value of these parameters will be used as value of the custom metadata attribute. + <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> - - + + - + - Sender to obtain information from and write to a CMIS application. - - <p> - When <code>action=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>&lt;cmis&gt; - &lt;id&gt;documentId&lt;/id&gt; - &lt;/cmis&gt;</code></pre> - </p> - <p> - When <code>action=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>&lt;cmis&gt; - &lt;id&gt;documentId&lt;/id&gt; - &lt;/cmis&gt;</code></pre> - </p> - <p> - When <code>action=create</code> the input (xml string) indicates document properties to set. This input is optional. - </p> - <p> - <b>Example:</b> - <pre><code>&lt;cmis&gt; - &lt;name&gt;Offerte&lt;/name&gt; - &lt;objectTypeId&gt;NNB_Geldlening&lt;/objectTypeId&gt; - &lt;mediaType&gt;application/pdf&lt;/mediaType&gt; - &lt;properties&gt; - &lt;property name=&quot;ArrivedAt&quot; type=&quot;datetime&quot; formatString=&quot;yyyy-MM-dd'T'HH:mm:ss.SSSz&quot;&gt;2014-11-27T16:43:01.268+0100&lt;/property&gt; - &lt;property name=&quot;ArrivedBy&quot;&gt;HDN&lt;/property&gt; - &lt;property name=&quot;DocumentType&quot;&gt;Geldlening&lt;/property&gt; - &lt;/properties&gt; - &lt;/cmis&gt;</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>&nbsp;</td></tr> - </table> - </p> - <p> - When <code>action=find</code> the input (xml string) indicates the query to perform. - </p> - <p> - <b>Example:</b> - <pre><code>&lt;query&gt; - &lt;statement&gt;select * from cmis:document&lt;/statement&gt; - &lt;maxItems&gt;10&lt;/maxItems&gt; - &lt;skipCount&gt;0&lt;/skipCount&gt; - &lt;searchAllVersions&gt;true&lt;/searchAllVersions&gt; - &lt;includeAllowableActions&gt;true&lt;/includeAllowableActions&gt; - &lt;/query</code></pre> - </p> - <p> - When <code>action=update</code> the input (xml string) indicates document properties to update. - </p> - <p> - <b>Example:</b> - <pre><code>&lt;cmis&gt; - &lt;id&gt;123456789&lt;/id&gt; - &lt;properties&gt; - &lt;property name=&quot;ArrivedAt&quot; type=&quot;datetime&quot; formatString=&quot;yyyy-MM-dd'T'HH:mm:ss.SSSz&quot;&gt;2014-11-27T16:43:01.268+0100&lt;/property&gt; - &lt;property name=&quot;ArrivedBy&quot;&gt;HDN&lt;/property&gt; - &lt;property name=&quot;DocumentType&quot;&gt;Geldlening&lt;/property&gt; - &lt;/properties&gt; - &lt;/cmis&gt;</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>&nbsp;</td></tr> - <tr><td>property</td><td>custom document property to update. See <code>action=create</code> for possible attributes</td><td>&nbsp;</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.<br><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</p> - - - - - - - - - - - - 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.<br><br><b>INFO</b><p>See DB2XMLWriter for ResultSet!</p><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</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> - - + + - + - FixedResultSender, same behaviour as FixedResultPipe, but now as a ISender. + 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. - - + + - - - Sender to send a message to another Frank! Adapter, or an external program running in the same JVM as the Frank!Framework. - <p> - Sends a message to another Frank!Framework-adapter in the same Frank!Framework instance, or an external program running in - the same JVM as the Frank!Framework. If the callee exits with an <code>&lt;Exit/&gt;</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 <code>exit.code</code> as forward name to the SenderPipe, provided that <code>exit.code</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> - A FrankSender makes a call to either an Adapter or an external program by setting the #scope. By default the scope is <code>ADAPTER</code>. - </p> - <p/> - - <h3>Configuration of the Adapter to be called</h3> - <p> - A call to another Adapter in the same Frank!Framework instance is preferably made using the combination - of a FrankSender configured with the name of the adapter. - </p> - <h4>Configuring FrankSender and Adapter</h4> - <ul> - <li>Define a SenderPipe with a FrankSender</li> - <li>Set the attribute <code>target</code> to <i>targetAdapterName</i></li> - <li>If the adapter is in another Configuration deployed in the same Frank!Framework instance, then set <code>target</code> to <code>targetConfigurationName/targetAdapterName</code> (note the slash-separator between Configuration name and Adapter name).</li> - </ul> - In the Adapter to be called: - <ul> - <li>The adapter does not need to have a receiver configured to be called from a FrankSender,</li> - <li>The adapter will run in the same transaction as the calling adapter,</li> - <li>If the called adapter does not to run in its own transaction, set the transaction attributes on the PipeLine attribute of this adapter - or on the SenderPipe that contains this <code>FrankSender</code>.</li> - </ul> - - <h4>Configuring FrankSender with FrankListener</h4> - <ul> - <li>Define a SenderPipe with a FrankSender</li> - <li>In the target adapter, define a org.frankframework.receivers.Receiver with a FrankListener</li> - <li>Give a unique name to the listener: FrankListener#setName(String). If the name is not set, the name of the Adapter will be used.</li> - <li>Set the #setScope(Scope) to <code>LISTENER</code> and the #setTarget(String) to the listener name as per previous point</li> - <li>If the listener is in a different configuration, prefix the listener name with the name of the configuration and a slash (<code>/</code>) as separator between configuration and listener name</li> - </ul> + + + + + + + + + + + + + + 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 Pipe + + + + + + + + + + + Timeout <i>in milliseconds</i> for receiving a message from the queue Default: 3000 + + + + + Regular 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 (?&lt;=&lt;party&gt;).*?(?=&lt;/party&gt;) will replace every + character between keys &lt;party&gt; and &lt;/party&gt; + <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: ALL + + + + + + + + + + + + + + + + + + Set 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</code>. + + + + + + + + + + + + + + + If set to <code>true</code>, the messages are stored compressed Default: true + + + + + + + + If set to <code>true</code>, the message is stored only if the MessageId is not present in the store yet. Default: false + + + + + + + + + + + + + + + Name of the table messages are stored in. Default: IBISSTORE + + + + + Name of the index, to be used in hints for query optimizer too (only for Oracle). Default: IX_IBISSTORE + + + + + + + + + + + The name of the column that contains the primary key of the table Default: MESSAGEKEY + + + + + The name of the column messageIds are stored in Default: MESSAGEID + + + + + The name of the column correlation-ids are stored in Default: CORRELATIONID + + + + + The name of the column message themselves are stored in Default: MESSAGE + + + + + The name of the column the timestamp is stored in Default: MESSAGEDATE + + + + + The name of the column comments are stored in Default: COMMENTS + + + + + The name of the column the timestamp for expiry is stored in Default: EXPIRYDATE + + + + + The name of the column labels are stored in Default: LABEL + + + + + Prefix to be prefixed on all database objects (tables, indices, sequences), e.g. to access a different Oracle schema + + + + + + + + + + Regular 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 (?&lt;=&lt;party&gt;).*?(?=&lt;/party&gt;) will replace every + character between keys &lt;party&gt; and &lt;/party&gt; + <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: ALL + + + + + + + + + + + + + + + + + + + + + + + + + + + + ESB (Enterprise Service Bus) extension of JmsTransactionalStorage. - <h4>Configuring FrankSender and Remote Application</h4> - <p> - <em>NB:</em> Please make sure that the IbisServiceDispatcher-1.4.jar or newer is present on the class path of the server. For more information, see: - </p> - <ul> - <li>Define a SenderPipe with a FrankSender</li> - <li>Set the attribute <code>scope</code> to either <code>JVM</code> for a Java application, or to <code>DLL</code> for code loaded from a DLL</li> - <li>Set the attribute <code>target</code> to the service-name the other application used to register itself</li> - </ul> <p> - In the other application: + Depending on the <code>type</code> of the <code>TransactionalStorage</code> + one of the following messages is sent: <ul> - <li>Implement the interface <code>nl.nn.adapterframework.dispatcher.RequestProcessor</code> from the IbisServiceDispatcher library</li> - <li>Register the instance with the <code>nl.nn.adapterframework.dispatcher.DispatcherManager</code> obtained via the <code>nl.nn.adapterframework.dispatcher.DispatcherManagerFactory</code></li> - <li>See the implementation code of the <code>JavaListener</code> in the Frank!Framework for an example</li> + <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> - See also the repository of the IbisServiceDispatcher: - <a href="https://github.com/frankframework/servicedispatcher">https://github.com/frankframework/servicedispatcher</a> - </p> - - <h4>Using FrankSender to call an adapter from Larva tests</h4> - <p> - You can configure a FrankSender in Larva property files to use the FrankSender to invoke an adapter to test. When doing this, keep the following in mind: - <ul> - <li>If you leave the default scope as <code>ADAPTER</code>, then the <code>target</code> property needs to have both configuration name and adapter name, separated by a <code>/</code> character</li> - <li>When scope is left as default, the receiver and JavaListener are skipped and no transaction is started unless it is set on the adapter's <code>PipeLine</code></li> - <li>If you do need a transaction and the adapter has a JavaListener that has org.frankframework.receivers.JavaListener#setServiceName(String) defined, you can use the FrankSender with scope <code>JVM</code> - and set the <code>target</code> attribute to the <code>serviceName</code> attribute of the <code>JavaListener</code>.</li> - </ul> - </p> - - <h3>Migrating Existing Configurations</h3> - <p> - When one adapter (named A) needs to call another adapter (named B) like a subroutine, you will usually have an IbisLocalSender or an IbisJavaSender - in adapter A, and a org.frankframework.receivers.JavaListener in adapter B. - </p> - <p> - <em>NB:</em> For the example it is assumed that all adapters are defined in the same configuration. - </p> - - <h4>Example of Existing Configuration</h4> - The existing configuration might look like this in the calling adapter: - <pre><code>&lt;module&gt; - &lt;adapter name=&quot;Adapter A&quot;&gt; - &lt;receiver name=&quot;Adapter A Receiver&quot;&gt; - &lt;listener name=&quot;Adapter A Listener&quot; - className=&quot;org.frankframework...&quot; etc/&gt; - &lt;/receiver&gt; - &lt;pipeline firstPipe=&quot;...&quot;&gt; - &lt;pipe name=&quot;send&quot; className=&quot;org.frankframework.pipes.SenderPipe&quot;&gt; - &lt;sender className=&quot;org.frankframework.senders.IbisJavaSender&quot; - serviceName=&quot;service-Adapter-B&quot; /&gt; - &lt;forward name=&quot;success&quot; path=&quot;...&quot; /&gt; - &lt;/pipe&gt; - &lt;/pipeline&gt; - &lt;/adapter&gt; - &lt;/module&gt;</code></pre> - - Or like using the modern XML XSD and an IbisLocalSender instead: - <pre><code>&lt;Module&gt; - &lt;Adapter name=&quot;Adapter A&quot;&gt; - &lt;Receiver name=&quot;Adapter A Receiver&quot;&gt; - ... Listener setup and other configuration - &lt;/Receiver&gt; - &lt;Pipeline&gt; - &lt;SenderPipe name=&quot;send&quot;&gt; - &lt;IbisLocalSender name=&quot;call Adapter B&quot; - javaListener=&quot;Adapter B Listener&quot;/&gt; - &lt;Forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; - &lt;/SenderPipe&gt; - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;/Module&gt;</code></pre> - - In the receiving adapter B the listener would have been configured like this: - <pre><code>&lt;Module&gt; - &lt;Adapter name=&quot;adapter B&quot;&gt; - &lt;Receiver name=&quot;Receiver B&quot;&gt; - &lt;JavaListener name=&quot;Adapter B Listener&quot; serviceName=&quot;service-Adapter-B&quot;/&gt; - &lt;/Receiver&gt; - &lt;Pipeline&gt; - ... - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;/Module&gt;</code></pre> - <p/> - - <h4>Rewritten Example Configuration With FrankSender</h4> - This example shows the most simple way of using the FrankSender to call another adapter with least amount of overhead. - - <pre><code>&lt;Module&gt; - &lt;Adapter name=&quot;Adapter A&quot;&gt; - &lt;Receiver name=&quot;Adapter A Receiver&quot;&gt; - ... Listener setup and other configuration - &lt;/Receiver&gt; - &lt;Pipeline&gt; - &lt;SenderPipe name=&quot;send&quot;&gt; - &lt;!-- when scope=&quot;ADAPTER&quot;, then target is directly the name of the adapter you want to call --&gt; - &lt;FrankSender name=&quot;call Adapter C&quot; - scope=&quot;ADAPTER&quot; - target=&quot;adapter B&quot; - /&gt; - &lt;Forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; - &lt;/SenderPipe&gt; - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;Adapter name=&quot;adapter B&quot;&gt; - &lt;!-- No receiver needed for FrankSender in this scenario --&gt; - &lt;Pipeline&gt; - ... Exits, Pipes etc - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;/Module&gt;</code></pre> - - <h4>Rewritten Example Configuration With FrankSender and FrankListener</h4> - This example shows why you might want to call the other adapter via the FrankListener. This adds a bit more overhead to the call - of the sub-adapter for the extra error-handling done by the target receiver. - - <pre><code>&lt;Module&gt; - &lt;Adapter name=&quot;Adapter A&quot;&gt; - &lt;Receiver name=&quot;Adapter A Receiver&quot;&gt; - ... Listener setup and other configuration - &lt;/Receiver&gt; - &lt;Pipeline&gt; - &lt;SenderPipe name=&quot;send&quot;&gt; - &lt;!-- when scope=&quot;LISTENER&quot;, then target is directly the name of the FrankListener in the adapter you want to call --&gt; - &lt;FrankSender - scope=&quot;LISTENER&quot; - target=&quot;Adapter B Listener&quot;/&gt; - &lt;Forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; - &lt;/SenderPipe&gt; - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;Adapter name=&quot;adapter B&quot;&gt; - &lt;!-- Messages will only be sent to the error storage if: - - The target receiver is not transactional, and has maxTries=&quot;0&quot;, or - - The target receiver is transaction, and the Sender is set up to retry sending on error - For internal adapters, sending / receiving with retries might not make sense so the example does not show that. - --&gt; - &lt;Receiver name=&quot;Receiver B&quot; maxRetries=&quot;0&quot; transactionAttribute=&quot;NotSupported&quot;&gt; - &lt;!-- Listener name is optional, defaults to Adapter name --&gt; - &lt;FrankListener name=&quot;Adapter B Listener&quot;/&gt; - &lt;!-- This adapter now has an error storage -- without Receiver and FrankListener the sub-adapter couldn't have that --&gt; - &lt;JdbcErrorStorage slotId=&quot;Adapter B - Errors&quot; /&gt; - &lt;/Receiver&gt; - &lt;!-- If transactions are required, set transaction-attribute on the Pipeline --&gt; - &lt;Pipeline transactionAttribute=&quot;RequiresNew&quot;&gt; - ... Exits, Pipes etc - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;/Module&gt;</code></pre> + <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> + - - + + - + - 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><br><br><b>INFO</b><p>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> + 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. - - + + - + + + + + + + + + + + + + + + + + + + + + + + - JMS sender which will add an IMS header to the message and call the MQ specific logic. - - <p>See JmsSender for configuration</p> + ErrorMessageFormatter that returns a fixed message with replacements. - - + + - + - Posts a message to another Frank!Framework-adapter or an application in the same JVM using IbisServiceDispatcher. - <p> - 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. - </p> - The IbisJavaSender is now considered to be legacy. The new way to call another adapter or java application from your own - adapter is by using the FrankSender. - </p> - <h4>configuring IbisJavaSender and JavaListener</h4> - <ul> - <li><em>NB:</em> Using IbisJavaSender to call another adapter is inefficient and therefore not recommended. It is much more efficient to use for this a FrankSender or IbisLocalSender.</li> - <li>Define a org.frankframework.pipes.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. For more information, see: - <a href="https://github.com/frankframework/servicedispatcher">https://github.com/frankframework/servicedispatcher</a> + ErrorMessageFormatter that returns a soap fault message. - - + + - + - Posts a message to another Frank!Framework-adapter in the same Frank!Framework instance. If the callee exits with an &lt;<code>exit</code>&gt; - 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> - The IbisLocalSender is now considered to be legacy. The new way to call another adapter from your own - adapter is by using the FrankSender. - </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 org.frankframework.receivers.Receiver with either a WebServiceListener - or a JavaListener. - </p> - - - <h3>Configuration of the Adapter to be called</h3> - A call to another Adapter in the same Frank!Framework 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 Frank!Framework-instance</li> - </ul> + Applies a XSLT-stylesheet to the standard error generated by an ErrorMessageFormatter. - <h4>configuring IbisLocalSender and WebServiceListener</h4> + If the transformation does not succeed, this 'standard' error message is returned and an exception is logged. - <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> + Hint: use <code>xpathExression="/errorMessage/@message"</code> for a single compact string as errormessage. - - + + - + + + + + + + + + + returned message + + + + + name of the file containing the result message + + + + + + + + + + + + + + + + + + + + + + + + + + + URL to the stylesheet used to transform the output of the standard ErrorMessageFormatter + + + + + xPathExpression to use for transformation + + + + + + + + + + + + + + + + + + + + + + + + + + + + - Requires the net.bankid.merchant.library V1.2.9 + 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>&nbsp;</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> - - + + - + - Implementation of sender that sends an IDoc to SAP. - N.B. The sending of the iDoc is committed right after the XA transaction is completed. + 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). + - - + + - + - Sender 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]</code>. - </p> + <code>Pipe</code> that validates the XML or JSON input message against a XML Schema and returns either XML or JSON. - - + + - + - This class sends messages with JMS. + Pipe that validates the input message against a JSON Schema. - - + + - + - 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. + 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> - - + + - + - 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: - <pre><code>&lt;sender - className=&quot;org.frankframework.ldap.LdapSender&quot; - ldapProviderURL=&quot;ldap://servername:389/o=ing&quot; - operation=&quot;read&quot; - attributesToReturn=&quot;givenName,sn,telephoneNumber&quot; &gt; - &lt;param name=&quot;entryName&quot; xpathExpression=&quot;entryName&quot; /&gt; - &lt;/sender&gt;</code></pre> - <br/> - - This may result in the following output: - <pre><code>&lt;ldap&gt; - &lt;entryName&gt;uid=srp,ou=people&lt;/entryName&gt; - &lt;attributes&gt; - &lt;attribute attrID=&quot;givenName&quot;&gt; - &lt;value&gt;Jan&lt;/value&gt; - &lt;/attribute&gt; - &lt;attribute attrID=&quot;telephoneNumber&quot;&gt; - &lt;value&gt;010 5131123&lt;/value&gt; - &lt;value&gt;06 23456064&lt;/value&gt; - &lt;/attribute&gt; - &lt;attribute attrID=&quot;sn&quot;&gt; - &lt;value&gt;Jansen&lt;/value&gt; - &lt;/attribute&gt; - &lt;/attributes&gt; - &lt;/ldap&gt;</code></pre> - <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/> - <pre><code>&lt;attributes&gt; - &lt;attribute&gt; - &lt;attribute name=&quot;employeeType&quot; value=&quot;Extern&quot;/&gt; - &lt;attribute name=&quot;roomNumber&quot; value=&quot;DP 2.13.025&quot;/&gt; - &lt;attribute name=&quot;departmentCode&quot; value=&quot;358000&quot;/&gt; - &lt;attribute name=&quot;organizationalHierarchy&quot;&gt; - &lt;item value=&quot;ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;item value=&quot;ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;item value=&quot;ou=000001,ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;/attribute&gt; - &lt;attribute name=&quot;givenName&quot; value=&quot;Gerrit&quot;/&gt; - &lt;/attributes&gt;</code></pre> - <br/> - Sample result of a <code>search</code> operation:<br/> - <pre><code>&lt;entries&gt; - &lt;entry name=&quot;uid=srp&quot;&gt; - &lt;attributes&gt; - &lt;attribute&gt; - &lt;attribute name=&quot;employeeType&quot; value=&quot;Extern&quot;/&gt; - &lt;attribute name=&quot;roomNumber&quot; value=&quot;DP 2.13.025&quot;/&gt; - &lt;attribute name=&quot;departmentCode&quot; value=&quot;358000&quot;/&gt; - &lt;attribute name=&quot;organizationalHierarchy&quot;&gt; - &lt;item value=&quot;ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;item value=&quot;ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;item value=&quot;ou=000001,ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;/attribute&gt; - &lt;attribute name=&quot;givenName&quot; value=&quot;Gerrit&quot;/&gt; - &lt;/attributes&gt; - &lt;/entry&gt; - &lt;entry&gt; .... &lt;/entry&gt; - ..... - &lt;/entries&gt;</code></pre> - <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 - <code>FileAttribute.</code>. - 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: - <pre><code>&lt;email&gt; - &lt;recipients&gt; - &lt;recipient type=&quot;to&quot;&gt;***@hotmail.com&lt;/recipient&gt; - &lt;recipient type=&quot;cc&quot;&gt;***@gmail.com&lt;/recipient&gt; - &lt;/recipients&gt; - &lt;from name=&quot;*** ***&quot;&gt;***@yahoo.com&lt;/from&gt; - &lt;subject&gt;This is the subject&lt;/subject&gt; - &lt;threadTopic&gt;subject&lt;/threadTopic&gt; - &lt;message&gt;This is the message&lt;/message&gt; - &lt;messageType&gt;text/plain&lt;/messageType&gt;&lt;!-- Optional --&gt; - &lt;messageBase64&gt;false&lt;/messageBase64&gt;&lt;!-- Optional --&gt; - &lt;charset&gt;UTF-8&lt;/charset&gt;&lt;!-- Optional --&gt; - &lt;attachments&gt; - &lt;attachment name=&quot;filename1.txt&quot;&gt;This is the first attachment&lt;/attachment&gt; - &lt;attachment name=&quot;filename2.pdf&quot; base64=&quot;true&quot;&gt;JVBERi0xLjQKCjIgMCBvYmoKPDwvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1...vSW5mbyA5IDAgUgo+PgpzdGFydHhyZWYKMzQxNDY2CiUlRU9GCg==&lt;/attachment&gt; - &lt;attachment name=&quot;filename3.pdf&quot; url=&quot;file:/c:/filename3.pdf&quot;/&gt; - &lt;attachment name=&quot;filename4.pdf&quot; sessionKey=&quot;fileContent&quot;/&gt; - &lt;/attachments&gt;&lt;!-- Optional --&gt; - &lt;/email&gt;</code></pre> - </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: - <pre><code>&lt;message&gt;&lt;![CDATA[&lt;h1&gt;This is a HtmlMessage&lt;/h1&gt;]]&gt;&lt;/message&gt;</code></pre> - </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: - <pre><code>&lt;SenderPipe name=&quot;Send&quot;&gt; - &lt;MessageStoreSender - slotId=&quot;${instance.name}/TestMessageStore&quot; - onlyStoreWhenMessageIdUnique=&quot;false&quot; /&gt; - &lt;/SenderPipe&gt;</code></pre> - - - - - - - - - - - - Sender to perform action on a MongoDB database. + 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. - - + + - + - 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. + Pipe that validates the input message against an XML Schema. - - + + - + - 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 access token used to authenticate with Akamai, you can use the authalias property. The username - represents the nonce and the password the access token.</p> + <code>Pipe</code> that checks the well-formedness of the input message. + If <code>root</code> is given then this is also checked. - - + + - - - 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>&lt;SenderPipe&gt; - &lt;ReconnectSenderWrapper&gt; - &lt;EchoSender myAttribute=&quot;myValue&quot; /&gt; - &lt;/ReconnectSenderWrapper&gt; - &lt;/SenderPipe&gt;</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.<br><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</p> - - - - - - - - - - - - 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. - - - - - - - - - - - - Implementation of sender that calls a SAP RFC-function. - - N.B. If no requestFieldIndex or requestFieldName is specified, input is converted from xml; - If no replyFieldIndex or replyFieldName is specified, output is converted to xml. - - - - - - - - - - - - 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.xml - - - - - - - - - - - - Series 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>?</code>, should - have a corresponding IParameter entry. Output parameters should have <code>mode=&quot;OUTPUT&quot;</code>, or - <code>mode=&quot;INOUT&quot;</code> 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> - <pre><code>&lt;resultset&gt; - &lt;result param=&quot;r1&quot; type=&quot;STRING&quot;&gt;MESSAGE-CONTENTS&lt;/result&gt; - &lt;result param=&quot;r2&quot; type=&quot;STRING&quot;&gt;E&lt;/result&gt; - &lt;/resultset&gt;</code></pre> - - <h4>Example with Resultset and Simple Output Parameters</h4> - <pre><code>&lt;resultset&gt; - &lt;result resultNr=&quot;1&quot;&gt; - &lt;fielddefinition&gt; - &lt;field name=&quot;FIELDNAME&quot; - type=&quot;columnType&quot; - columnDisplaySize=&quot;&quot; - precision=&quot;&quot; - scale=&quot;&quot; - isCurrency=&quot;&quot; - columnTypeName=&quot;&quot; - columnClassName=&quot;&quot;/&gt; - &lt;field ...../&gt; - &lt;/fielddefinition&gt; - &lt;rowset&gt; - &lt;row number=&quot;0&quot;&gt; - &lt;field name=&quot;TKEY&quot;&gt;MSG-ID&lt;/field&gt; - &lt;field name=&quot;TCHAR&quot;&gt;E&lt;/field&gt; - &lt;field name=&quot;TMESSAGE&quot;&gt;MESSAGE-CONTENTS&lt;/field&gt; - &lt;field name=&quot;TCLOB&quot; null=&quot;true&quot;/&gt; - &lt;field name=&quot;TBLOB&quot; null=&quot;true&quot;/&gt; - &lt;/row&gt; - &lt;row number=&quot;1&quot; ...../&gt; - &lt;/rowset&gt; - &lt;/result&gt; - &lt;result param=&quot;count&quot; type=&quot;INTEGER&quot;&gt;5&lt;/result&gt; - &lt;/resultset&gt;</code></pre> - - <h4>Example with Simple and Cursor Output Parameters</h4> - <pre><code>&lt;resultset&gt; - &lt;result param=&quot;count&quot; type=&quot;INTEGER&quot;&gt;5&lt;/result&gt; - &lt;result param=&quot;cursor1&quot; type=&quot;LIST&quot;&gt; - &lt;fielddefinition&gt; - &lt;field name=&quot;FIELDNAME&quot; - type=&quot;columnType&quot; - columnDisplaySize=&quot;&quot; - precision=&quot;&quot; - scale=&quot;&quot; - isCurrency=&quot;&quot; - columnTypeName=&quot;&quot; - columnClassName=&quot;&quot;/&gt; - &lt;field ...../&gt; - &lt;/fielddefinition&gt; - &lt;rowset&gt; - &lt;row number=&quot;0&quot;&gt; - &lt;field name=&quot;TKEY&quot;&gt;MSG-ID&lt;/field&gt; - &lt;field name=&quot;TCHAR&quot;&gt;E&lt;/field&gt; - &lt;field name=&quot;TMESSAGE&quot;&gt;MESSAGE-CONTENTS&lt;/field&gt; - &lt;field name=&quot;TCLOB&quot; null=&quot;true&quot;/&gt; - &lt;field name=&quot;TBLOB&quot; null=&quot;true&quot;/&gt; - &lt;/row&gt; - &lt;row number=&quot;1&quot; ..... /&gt; - &lt;/rowset&gt; - &lt;/result&gt; - &lt;/resultset&gt;</code></pre> - </p><br><br><b>INFO</b><p>Support for stored procedures is currently experimental and changes in the currently produced output-format are expected.</p><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</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> - <pre><code>&lt;browse&gt; - &lt;jmsRealm&gt;qcf&lt;/jmsRealm&gt; - &lt;destinationName&gt;jms/GetPolicyDetailsRequest&lt;/destinationName&gt; - &lt;destinationType&gt;QUEUE&lt;/destinationType&gt; - &lt;/browse&gt;</code></pre> - </p> - <p> - <b>example (browse output):</b> - <pre><code>&lt;result&gt; - &lt;items count=&quot;2&quot;&gt; - &lt;item&gt; - &lt;timestamp&gt;Thu Nov 20 13:36:31 CET 2014&lt;/timestamp&gt; - &lt;messageId&gt;ID:LPAB00000003980-61959-1416486781822-3:5:33:1:1&lt;/messageId&gt; - &lt;correlationId&gt;...&lt;/correlationId&gt; - &lt;message&gt;&lt;![CDATA[...]]&gt;&lt;/message&gt; - &lt;/item&gt; - &lt;item&gt; - &lt;timestamp&gt;Thu Dec 12 11:59:22 CET 2014&lt;/timestamp&gt; - &lt;messageId&gt;ID:LPAB00000003980-58359-1721486799722-3:4:19:1:1&lt;/messageId&gt; - &lt;correlationId&gt;...&lt;/correlationId&gt; - &lt;message&gt;&lt;![CDATA[...]]&gt;&lt;/message&gt; - &lt;/item&gt; - &lt;/items&gt; - &lt;/result&gt;</code></pre> - </p> - - <p> - <b>example (remove output):</b> - <pre><code>&lt;result&gt; - &lt;itemsRemoved&gt;2&lt;/itemsRemoved&gt; - &lt;/result&gt;</code></pre> - - - - - - - - - - - - QuerySender that transforms the input message to a query. - <br/> - <pre><code>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] - - alter - sequenceName - - startWith - - sql - type [0..1] one of {select;ddl;other}, other by default - - query</code></pre> - <br/><br><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</p> - - - - - - - - - - - - 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 account - - - - - Secret key to access to the AWS resources owned by the account - - - - - Alias used to obtain AWS credentials - - - - - Setting this flag will result in disabling chunked encoding for all requests. Default: false - - - - - Option to enable or disable the usage of multi-region access point ARNs. Default: false - - - - - Name of the AWS region that the client is using. Default: eu-west-1 - - - - - Name of the bucket to access. The bucketName can also be specified by prefixing it to the object name, separated from it by <code>|</code> - - - - - Proxy host - - - - - Proxy port - - - - - The 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 S3 Default: 50 - - - - - - - - - - - - - - - - name of the sender - - - - - - - - - If parameter [<code>action</code>] 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 <code>filename</code> is used. If that is not set either, the input is used - - - - - Destination for <code>move</code>, <code>copy</code> or <code>rename</code>. If not set, the parameter <code>destination</code> is used. If that is not set either, the input is used - - - - - Folder that is scanned for files when action=<code>list</code>. When not set, the root is scanned - - - - - If <code>true</code>: if a non-existing folder is part of the fileName, it will be created. Default: false - - - - - If set <code>true</code>, for actions <code>create</code>, <code>write</code>, <code>move</code>, <code>copy</code> or <code>rename</code>, the destination file is overwritten if it already exists Default: false - - - - - For action=<code>append</code>: 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: 0 - - - - - For action=<code>append</code>: 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: 0 - - - - - For the actions <code>write</code> and <code>append</code>, with rotateSize>0: the number of backup files that is kept. The inputFolder must point to the directory where the file resides Default: 0 - - - - - Filter of files to look for in inputFolder e.g. '*.inp'. Works with actions <code>move</code>, <code>copy</code>, <code>delete</code> and <code>list</code> - - - - - Filter of files to be excluded when looking in inputFolder. Works with actions <code>move</code>, <code>copy</code>, <code>delete</code> and <code>list</code> - - - - - If 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 <code>write</code> and <code>append</code> Default: false - - - - - Charset to be used for <code>read</code> and <code>write</code> action - - - - - If set to true then the folder will be deleted if it is empty after processing the action. Works with actions <code>delete</code>, <code>readDelete</code> and <code>move</code> - - - - - Sets the outputFormat. This ignored when reading a file. Is applicable to actions which return information about file(s). Relevant for: - 'info', 'list', 'append', 'move', 'delete' and 'copy' actions. Default: XML - - - - - - - - Filter for action <code>list</code>. Specify <code>FILES_ONLY</code>, <code>FOLDERS_ONLY</code> or <code>FILES_AND_FOLDERS</code>. Default: FILES_ONLY - - - - - - - - - - - - - - - - - - - Specifies action to perform - - - - - - - - The maximum number of concurrent connections Default: 10 - - - - - READ_TIMEOUT timeout in MS. - Defaults to 10000, inherited from HttpSender#setTimeout. Default: 10000 - - - - - URL to connect to - - - - - Repository ID - - - - - Alias used to obtain credentials for authentication to host - - - - - Username used in authentication to host - - - - - Password used in authentication to host - - - - - BindingType CMIS protocol to use - - - - - - - - If <code>action=create</code> the sessionKey that contains the file to use. If <code>action=get</code> and <code>getProperties=true</code> the sessionKey to store the result in - - - - - If <code>action=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 used - - - - - If <code>action=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=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=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=create</code>). If true, the document is created in the root folder of the repository. Otherwise the document is created in the repository Default: true - - - - - If true, the session is not closed at the end and it will be used in the next call Default: true - - - - - Override entrypoint WSDL by reading it from the classpath, overrides url attribute - - - - - Resource url to keystore or certificate. If none specified, the JVMs default keystore will be used. - - - - - Type of keystore Default: pkcs12 - - - - - - - - Authentication alias used to obtain keystore password - - - - - Default password to access keystore - - - - - Alias to obtain specific certificate or key in keystore - - - - - Authentication 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 algorithm - - - - - Resource url to truststore. If none specified, the JVMs default truststore will be used. - - - - - Type of truststore Default: jks - - - - - - - - Authentication alias used to obtain truststore password - - - - - Default password to access truststore - - - - - Trust manager algorithm. Can be left empty to use the servers default algorithm - - - - - If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer. Note: This attribute is unsafe and should not be used in a production environment. Default: false - - - - - If <code>true</code>, self signed certificates are accepted. Note: This attribute is unsafe and should not be used in a production environment. Default: false - - - - - If <code>true</code>, CertificateExpiredExceptions are ignored. Note: This attribute is unsafe and should not be used in a production environment. Default: false - - - - - Proxy host url - - - - - Proxy host port Default: 80 - - - - - Alias used to obtain credentials for authentication to proxy - - - - - Proxy Username - - - - - Proxy Password - - - - - - - - - - - - - - - - The command to be executed. Note: Executing a command in WAS requires &lt;&lt;ALL FILES&gt;&gt; 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: 0 - - - - - In case the command that will be executed contains arguments then this flag should be set to true Default: false - - - - - - - - - - - - - - - The 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: 0 - - - - - - - - - - - - Type of query to be executed Default: OTHER - - - - - - - - - - The maximum number of rows to be returned from the output of <code>select</code> queries, -1 means unlimited rows Default: -1 - - - - - The 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: 1 - - - - - - - Comma 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 dialect - - - - - When 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: false - - - - - when set and >=0, ' FOR UPDATE WAIT #' is used instead of ' FOR UPDATE NOWAIT SKIP LOCKED' Default: -1 - - - - - - Only for querytype 'updateBlob': column that contains the BLOB to be updated Default: 1 - - - - - For 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 to - - - - - controls whether blobdata is stored compressed in the database Default: true - - - - - controls 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 case - - - - - Controls automatically whether blobdata is stored compressed and/or serialized in the database Default: false - - - - - Only for querytype 'updateClob': column that contains the CLOB to be updated Default: 1 - - - - - For 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 to - - - - - - - If 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: false - - - - - - - - - - - - - - - - - - hack to allow to introduce a correlationid Default: true - - - - - - - - - - - - - - - - protocol of ESB service to be called - - - - - - - - receiver 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 application - - - - - - - - if messageProtocol=<code>RR</code> then <code>replyTimeout</code> defaults to <code>timeout</code> Default: 5000 - - - - - if messageProtocol=<code>RR</code> then <code>synchronous</code> defaults to <code>true</code> Default: false - - - - - if 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: false - - - - - - - - - - - - - - - - - - - - - - - - If <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=true</code>). Maximum time in ms to wait for a reply. 0 means no timeout. Default: 5000 - - - - - - Controls mode that messages are sent with Default: not set by application - - - - - - - - - If <code>true</code>, messages sent are put in a SOAP envelope Default: false - - - - - - - SOAPAction string sent as message property - - - - - - - - - - - - - - - - - - - The 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 autodiscovery - - - - - Client 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 Secrets - - - - - Tenant 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 used - - - - - If empty, all mails are retrieved. If set to <code>NDR</code> only Non-Delivery Report mails ('bounces') are retrieved - - - - - Comma separated list of fields to try as response address Default: <code>replyTo,from,sender,Return-Path</code> - - - - - proxy host - - - - - proxy port Default: 8080 - - - - - proxy username - - - - - proxy password - - - - - proxy authAlias - - - - - proxy domain - - - - - Separator character used when working with multiple mailboxes, specified before the separator in the object name <code>test@organisation.com|My sub folder</code> or <code>test@organisation.com|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: pkcs12 - - - - - - - - Authentication alias used to obtain keystore password - - - - - Default password to access keystore - - - - - Key manager algorithm. Can be left empty to use the servers default algorithm - - - - - Alias to obtain specific certificate or key in keystore - - - - - Authentication 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: jks - - - - - - - - Authentication alias used to obtain truststore password - - - - - Default password to access truststore - - - - - Trust manager algorithm. Can be left empty to use the servers default algorithm - - - - - If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer Default: false - - - - - If <code>true</code>, self signed certificates are accepted Default: false - - - - - If <code>true</code>, CertificateExpiredExceptions are ignored Default: false - - - - - - - - - - - - - - - - - - - - - The SQL query text to be executed each time sendMessage() is called - - - - - - - - - - - - - - - - - should values between ${ and } be resolved from the pipelinesession Default: false - - - - - Name of the file containing the result message - - - - - returned message - - - - - - - - - - - - - - - - - - - Synchronous or Asynchronous execution of the call to other adapter or system. - <br/> - Set to <code>false</code> to make the call asynchronously. This means that the current adapter - continues with the next pipeline and the result of the sub-adapter that was called, or other system that was called, - is ignored. Instead, the input message will be returned as the result message. Default: true - - - - - Scope decides if the FrankSender calls another adapter, or another Java program running in the same JVM. - <br/> - It is possible to set this via a parameter. If the parameter is defined but the value at runtime - is empty, then the value set via this attribute will be used as default. Default: ADAPTER - - - - - - - - Target: service-name of service in other application that should be called, or name of adapter to be called. - If the adapter is in another configuration, prefix the adapter name with the name of that configuration and a slash ("<code>/</code>"). - <br/> - It is possible to set a target at runtime via a parameter. - <br/> - If a parameter with name <code>target</code> exists but has no value, then the target configured - via the attribute will be used as a default. - - - - - 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. - - - - - - - - - - - - - - - - pathname of the file or directory to list. Default: Home folder of the ftp user - - - - - Name or ip address of remote host - - - - - Port number of remote host Default: 21 - - - - - Name of the alias to obtain credentials to authenticatie on remote server - - - - - Name of the user to authenticatie on remote server - - - - - Password to authenticatie on remote server - - - - - Proxy hostname - - - - - Proxy port Default: 1080 - - - - - FTP protocol to use Default: FTP - - - - - - - - - - - - - If <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 Default: false - - - - - (ftps) If <code>true</code>, self signed certificates are accepted Default: false - - - - - (ftps) If <code>true</code>, CertificateExpiredExceptions are ignored Default: false - - - - - Sets the <code>Data Channel Protection Level</code>. Default: C - - - - - - - - - - - - - - - - - - - If <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=POST</code> and <code>postType=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 content - - - - - If set and <code>methodType=POST</code> and <code>paramsInUrl=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: false - - - - - If <code>true</code>, the input will be added to the URL for <code>methodType=GET</code>, or for <code>methodType=POST</code>, <code>PUT</code> or - <code>PATCH</code> if <code>postType=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 response - - - - - - - The functional name of the object. - - - - - - - - Timeout in ms of obtaining a connection/result. Default: 10000 - - - - - - - Authentication alias used for authentication to the host - - - - - Username used for authentication to the host - - - - - Password used for authentication to the host - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Timeout in ms of obtaining a connection/result. Default: 10000 - - - - - - - Authentication alias used for authentication to the host - - - - - Username used for authentication to the host - - - - - Password used for authentication to the host - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The transaction code that should be added in the header, must be 8 characters - - - - - - - - - - - - - - - - ServiceName 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 classpath - - - - - - - - - - - - - - - - Name 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 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. - - - - - If set <code>false</code>, the call is made asynchronously. This implies <code>isolated=true</code> Default: true - - - - - If <code>true</code>, the call is made in a separate thread, possibly using separate transaction Default: false - - - - - If <code>true</code>, the sender waits upon open until the called JavaListener is opened Default: true - - - - - Maximum time (in seconds) the sender waits for the listener to start. A value of -1 indicates to wait indefinitely Default: 60 - - - - - If set <code>false</code>, the xml-string \"&lt;error&gt;could not find JavaListener [...]&lt;/error&gt;\" is returned instead of throwing a senderexception Default: true - - - - - - - - - - - - - - - - - - - - - This 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 certificates - - - - - The password used to access the keystore - - - - - The AuthAlias used to access the keystore - - - - - This 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 .pfx - - - - - In case the merchant certificate has been password protected - - - - - In case the merchant certificate has been password protected - - - - - 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 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 protected - - - - - In case the SAML certificate has been password protected - - - - - - - - - - - Load 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 functions - - - - - Name of the parameter used to indicate the name of the SapSystem used by this object if the attribute <code>sapSystemName</code> is empty Default: sapSystemName - - - - - - - - - - - - - - - - The hostname of the IMAP server - - - - - The port of the IMAP server Default: 993 - - - - - Alias 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 used - - - - - Comma separated list of fields to try as response address Default: <code>replyTo,from,sender,Return-Path</code> - - - - - - - - - - - - - - - - - - - - - - - - - - - the name of the javascript file containing the functions to run - - - - - the name of the javascript function that will be called (first) Default: main - - - - - the name of the JavaScript engine to use. Default: J2V8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - If set, input is taken from this session key, instead of regular input - - - - - If set, this fixed value is taken as input, instead of regular input - - - - - If set <code>true</code>, the input of a pipe is restored before processing the next one Default: false - - - - - If set, the result is stored under this session key - - - - - If set, the input is stored under this session key - - - - - - - - - - - - - - - - When <code>true</code>, the xml result of the transformation is converted back to json Default: true - - - - - Namespace 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/json - - - - - - - - If 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.default - - - - - Location of stylesheet to apply to the input message - - - - - Session key to retrieve stylesheet location. Overrides stylesheetName or xpathExpression attribute - - - - - Size of cache of stylesheets retrieved from styleSheetNameSessionKey Default: 100 - - - - - Alternatively: XPath-expression to create stylesheet from - - - - - Omit 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 stylesheet - - - - - If 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 stylesheet - - - - - For xpathExpression only Default: text - - - - - - - - If 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 stylesheet - - - - - If set <code>true</code> namespaces (and prefixes) in the input message are removed before transformation Default: false - - - - - If 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: false - - - - - If set <code>true</code> empty tags in the output are removed after transformation Default: false - - - - - 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: 0 - - - - - - - - - - - - - - If 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.default - - - - - Location of stylesheet to apply to the input message - - - - - Session key to retrieve stylesheet location. Overrides stylesheetName or xpathExpression attribute - - - - - Size of cache of stylesheets retrieved from styleSheetNameSessionKey Default: 100 - - - - - Alternatively: XPath-expression to create stylesheet from - - - - - Omit 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 stylesheet - - - - - If 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 stylesheet - - - - - Namespace 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 namespace - - - - - For xpathExpression only Default: text - - - - - - - - If 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 stylesheet - - - - - If set <code>true</code> namespaces (and prefixes) in the input message are removed before transformation Default: false - - - - - If 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: false - - - - - If set <code>true</code> empty tags in the output are removed after transformation Default: false - - - - - 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: 0 - - - - - - - - - - - - - - - - - - - - - - Specifies LDAP operation to perform Default: read - - - - - - - - URL 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: attribute - - - - - - - - Comma 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 otherwise - - - - - Specifies the time (in ms) that is spent searching for results for operation search Default: 20000 - - - - - Key of session variable used to store cause of errors Default: errorReason - - - - - The maximum number of entries to be returned by a search query, or <code>0</code> for unlimited Default: 0 - - - - - When <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 '&lt;ldapresult&gt;object not found&lt;/ldapresult&gt;' is returned instead of the PartialResultException 'unprocessed continuation reference(s)' Default: false - - - - - - - - - - - - - - - - Path 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 used - - - - - Whether the LocalFileSystem tries to create the root folder if it doesn't exist yet. Default: false - - - - - - - - - - - - - - - - category under which messages are logged Default: name of the sender - - - - - level on which messages are logged Default: info - - - - - - - - - - - - - - - - - - - - - Name of the SMTP-host by which the messages are to be send - - - - - Port of the SMTP-host by which the messages are to be send Default: 25 - - - - - When set to true, we ensure TLS is being used Default: false - - - - - - - - - - - authAlias used to obtain credentials for authentication - - - - - - password of userid - - - - - - - Timeout <i>in milliseconds</i> for socket connection timeout and socket i/o timeouts Default: 20000 - - - - - - - - - - - - - - - - - - - - - - - - - - Comma 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: true - - - - - - - - - - - - - - - Set 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</code>. - - - - - - - - - - - - - - - If set to <code>true</code>, the messages are stored compressed Default: true - - - - - - - - If set to <code>true</code>, the message is stored only if the MessageId is not present in the store yet. Default: false - - - - - - - - - - - - - - - Name of the table messages are stored in. Default: IBISSTORE - - - - - Name of the index, to be used in hints for query optimizer too (only for Oracle). Default: IX_IBISSTORE - - - - - - - - - - - The name of the column that contains the primary key of the table Default: MESSAGEKEY - - - - - The name of the column messageIds are stored in Default: MESSAGEID - - - - - The name of the column correlation-ids are stored in Default: CORRELATIONID - - - - - The name of the column message themselves are stored in Default: MESSAGE - - - - - The name of the column the timestamp is stored in Default: MESSAGEDATE - - - - - The name of the column comments are stored in Default: COMMENTS - - - - - The name of the column the timestamp for expiry is stored in Default: EXPIRYDATE - - - - - The name of the column labels are stored in Default: LABEL - - - - - Prefix to be prefixed on all database objects (tables, indices, sequences), e.g. to access a different Oracle schema - - - - - - - - - - Regular 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 (?&lt;=&lt;party&gt;).*?(?=&lt;/party&gt;) will replace every - character between keys &lt;party&gt; and &lt;/party&gt; - <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: ALL - - - - - - - - - - - - - - - - - - - The MongoDB datasource Default: <code>mongodb.datasource.default</code> - - - - - Database to connect to. Can be overridden by parameter <code>database</code> - - - - - Collection to act upon. Can be overridden by parameter <code>collection</code> - - - - - Action - - - - - - - - Filter. Can contain references to parameters between <code>?{</code> and <code>}</code>. Can be overridden by parameter <code>filter</code> - - - - - Limit to number of results returned. A value of 0 means 'no limit'. Can be overridden by parameter <code>limit</code>. Default: 0 - - - - - Only for find operation: return only the count and not the full document(s) Default: false - - - - - OutputFormat Default: JSON - - - - - - - - Format 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 used - - - - - - - - At the time of writing, NetStorage only supports version 1 Default: 1 - - - - - NetStorage CP Code of the storage group - - - - - The destination URL for the Akamai NetStorage. (Only the hostname, without CpCode; eq. xyz-nsu.akamaihd.net) - - - - - Login is done via a Nonce and AccessToken - - - - - Version to validate queries made to NetStorage backend. Default: 5 - - - - - Login is done via a Nonce and AccessToken - - - - - Root 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 response - - - - - - - The functional name of the object. - - - - - Timeout in ms of obtaining a connection/result. Default: 10000 - - - - - - - Username used for authentication to the host - - - - - Password used for authentication to the host - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Set the upper limit to the amount of concurrent threads that can be run simultaneously. Use 0 to disable. Default: 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - reload the configuration regardless of the version Default: false - - - - - - - - - - - - - - - - type of the optional status field which is set after the row is written to the file: timestamp - - - - - Key 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: false - - - - - If set (and &gt;=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 processed - - - - - - - - - - - - - - - - The destination, aka smb://xxx/yyy share - - - - - The SMB share username - - - - - The SMB share password - - - - - Alias used to obtain credentials for the SMB share - - - - - logon/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: false - - - - - controls whether hidden files are seen or not Default: false - - - - - - - - - - - - - - - - Hostname of the SMB share. - - - - - Port to connect to. Default: 445 - - - - - Type 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: SPNEGO - - - - - - - - alias used to obtain credentials for the smb share - - - - - the smb share username - - - - - the smb share password - - - - - NTLM 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: false - - - - - Name of the RFC-function to be called in the SAP system - - - - - Name of the parameter used to obtain the functionName from if the attribute <code>functionName</code> is empty Default: functionName - - - - - - - - - - - - - - - - expression that generates the cron trigger - - - - - job 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 fires - - - - - - - - - - - - - - - - Timeout in ms of obtaining a connection/result. Default: 10000 - - - - - The maximum number of concurrent connections Default: 10 - - - - - The maximum number of times the execution is retried Default: 1 (for repeatable messages) else 0 - - - - - Proxy host - - - - - Proxy port Default: 80 - - - - - Alias used to obtain credentials for authentication to proxy - - - - - Proxy username - - - - - Proxy password - - - - - Proxy realm - - - - - resource URL to keystore or certificate to be used for authentication. If none specified, the JVMs default keystore will be used. - - - - - Type of keystore Default: pkcs12 - - - - - - - - Authentication alias used to obtain keystore password - - - - - Default password to access keystore - - - - - Alias to obtain specific certificate or key in keystore - - - - - Authentication 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 algorithm - - - - - Resource URL to truststore to be used for authenticating peer. If none specified, the JVMs default truststore will be used. - - - - - Type of truststore Default: jks - - - - - - - - Authentication alias used to obtain truststore password - - - - - Default password to access truststore - - - - - Trust manager algorithm. Can be left empty to use the servers default algorithm - - - - - If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer Default: false - - - - - If <code>true</code>, self signed certificates are accepted Default: false - - - - - If <code>true</code>, CertificateExpiredExceptions are ignored Default: false - - - - - If <code>true</code>, a redirect request will be honoured, e.g. to switch to HTTPS Default: true - - - - - Controls whether connections checked to be stale, i.e. appear open, but are not. Default: true - - - - - Used when <code>staleChecking</code> is <code>true</code>. Timeout after which an idle connection will be validated before being used. Default: 5000 ms - - - - - Secure socket protocol (such as 'TLSv1.2') to use when a SSLContext object is generated. Default: TLSv1.2 - - - - - - - - authAlias used to obtain credentials for authentication - - - - - - password of userid - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Path of the file or directory to start working. Default: Home folder of the sftp user - - - - - Name or ip address of remote host - - - - - Port number of remote host Default: 21 - - - - - Name of the alias to obtain credentials to authenticatie on remote server - - - - - Name of the user to authenticatie on remote server - - - - - Password to authenticatie on remote server - - - - - Proxy hostname - - - - - Proxy port Default: 1080 - - - - - alias to obtain credentials to authenticate on proxy - - - - - Default user name in case proxy requires authentication - - - - - Default password in case proxy requires authentication - - - - - Transport type in case of sftp Default: SOCKS5 - - - - - - - - Optional preferred encryption from client to server for sftp protocol - - - - - Optional preferred encryption from server to client for sftp protocol - - - - - Path to private key file for sftp authentication - - - - - Name of the alias to obtain credentials for passphrase of private key file - - - - - Passphrase of private key file - - - - - Path to file with knownhosts - - - - - Verify the hosts againt the knownhosts file. Default: true - - - - - - - - - - - - - - - - Name of the sender that is considered that is considered to be the golden standard, i.e. the source of truth. Default: the first sender specified - - - - - The sender name which will process the results Default: the last sender specified - - - - - If 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: false - - - - - - - - - - - - - - - - A 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: OTHER - - - - - - - - - - - - - - - - - - - - If set, the SQL dialect in which the queries are written and should be translated from to the actual SQL dialect - - - - - - - - - - - - - - - - - - when <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: true - - - - - the soapactionuri to be set in the requestheader - - - - - parameter to obtain the soapactionuri - - - - - the encodingstyle to be set in the messageheader - - - - - controls whether soap faults generated by the application generate an exception, or are treated as 'normal' messages Default: true - - - - - 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 - - - - - parameter to obtain the servicenamespace - - - - - namespace 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>-definitions - - - - - username used to obtain credentials for authentication to web services security - - - - - password used to obtain credentials for authentication to web services security - - - - - alias used to obtain credentials for authentication to web services security - - - - - when 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 response - - - - - - - The functional name of the object. - - - - - Timeout in ms of obtaining a connection/result. Default: 10000 - - - - - - - Authentication alias used for authentication to the host - - - - - Username used for authentication to the host - - - - - Password used for authentication to the host - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - one of create, append or replace - - - - - - - - remote directory is prefixed witht the remote file - - - - - - - - - - characterset conversion - - - - - - - - - - - - - name of logfile for xcomtcp to be used - - - - - password of user on remote system - - - - - port of remote host - - - - - set queue off or on - - - - - hostname or tcpip adres of remote host - - - - - set between 0 (no trace) and 10 - - - - - set truncation off or on - - - - - loginname of user on remote system - - - - - remote file to create. if empty, the name is equal to the local file - - - - - directory in which to run the xcomtcp command - - - - - path to xcomtcp command - - - - - - name of the alias to obtain credentials to authenticatie on remote server - - - - - - - - - - - - - - - - Full pathname to the XFB script to be executed to transfer the file - - - - - - - - - When 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: false - - - - - If set: key of session variable to store reasons of mis-validation in Default: failureReason - - - - - Like <code>reasonSessionKey</code> but stores reasons in xml format and more extensive Default: xmlFailureReason - - - - - If 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: false - - - - - Characterset used for reading file, only used when <code>validateFile</code> is <code>true</code> Default: utf-8 - - - - - If 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 <code>XSD_VALIDATION_WARNINGS_SUPPRESS_KEY</code>, <code>XSD_VALIDATION_ERROR_SUPPRESS_KEY</code> and <code>XSD_VALIDATION_FATAL_ERROR_SUPPRESS_KEY</code> Default: true - - - - - Ignore namespaces in the input message which are unknown Default: true when <code>schema</code> or <code>noNamespaceSchemaLocation</code> is used, false otherwise - - - - - If set <code>true</code>, the number for caching validators in appConstants is ignored and no caching is done (for this validator only) Default: false - - - - - If 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: collection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Domparser 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 - <code>FileAttribute.</code>. - 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=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>&lt;cmis&gt; - &lt;id&gt;documentId&lt;/id&gt; - &lt;/cmis&gt;</code></pre> - </p> - <p> - When <code>action=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>&lt;cmis&gt; - &lt;id&gt;documentId&lt;/id&gt; - &lt;/cmis&gt;</code></pre> - </p> - <p> - When <code>action=create</code> the input (xml string) indicates document properties to set. This input is optional. - </p> - <p> - <b>Example:</b> - <pre><code>&lt;cmis&gt; - &lt;name&gt;Offerte&lt;/name&gt; - &lt;objectTypeId&gt;NNB_Geldlening&lt;/objectTypeId&gt; - &lt;mediaType&gt;application/pdf&lt;/mediaType&gt; - &lt;properties&gt; - &lt;property name=&quot;ArrivedAt&quot; type=&quot;datetime&quot; formatString=&quot;yyyy-MM-dd'T'HH:mm:ss.SSSz&quot;&gt;2014-11-27T16:43:01.268+0100&lt;/property&gt; - &lt;property name=&quot;ArrivedBy&quot;&gt;HDN&lt;/property&gt; - &lt;property name=&quot;DocumentType&quot;&gt;Geldlening&lt;/property&gt; - &lt;/properties&gt; - &lt;/cmis&gt;</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>&nbsp;</td></tr> - </table> - </p> - <p> - When <code>action=find</code> the input (xml string) indicates the query to perform. - </p> - <p> - <b>Example:</b> - <pre><code>&lt;query&gt; - &lt;statement&gt;select * from cmis:document&lt;/statement&gt; - &lt;maxItems&gt;10&lt;/maxItems&gt; - &lt;skipCount&gt;0&lt;/skipCount&gt; - &lt;searchAllVersions&gt;true&lt;/searchAllVersions&gt; - &lt;includeAllowableActions&gt;true&lt;/includeAllowableActions&gt; - &lt;/query</code></pre> - </p> - <p> - When <code>action=update</code> the input (xml string) indicates document properties to update. - </p> - <p> - <b>Example:</b> - <pre><code>&lt;cmis&gt; - &lt;id&gt;123456789&lt;/id&gt; - &lt;properties&gt; - &lt;property name=&quot;ArrivedAt&quot; type=&quot;datetime&quot; formatString=&quot;yyyy-MM-dd'T'HH:mm:ss.SSSz&quot;&gt;2014-11-27T16:43:01.268+0100&lt;/property&gt; - &lt;property name=&quot;ArrivedBy&quot;&gt;HDN&lt;/property&gt; - &lt;property name=&quot;DocumentType&quot;&gt;Geldlening&lt;/property&gt; - &lt;/properties&gt; - &lt;/cmis&gt;</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>&nbsp;</td></tr> - <tr><td>property</td><td>custom document property to update. See <code>action=create</code> for possible attributes</td><td>&nbsp;</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.<br><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</p> - - - - - - - - - - - - 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.<br><br><b>INFO</b><p>See DB2XMLWriter for ResultSet!</p><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</p> - - - - - - - - - - - - FixedResultSender, same behaviour as FixedResultPipe, but now as a ISender. - - - - - - - - - - - - Sender to send a message to another Frank! Adapter, or an external program running in the same JVM as the Frank!Framework. - <p> - Sends a message to another Frank!Framework-adapter in the same Frank!Framework instance, or an external program running in - the same JVM as the Frank!Framework. If the callee exits with an <code>&lt;Exit/&gt;</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 <code>exit.code</code> as forward name to the SenderPipe, provided that <code>exit.code</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> - A FrankSender makes a call to either an Adapter or an external program by setting the #scope. By default the scope is <code>ADAPTER</code>. - </p> - <p/> - - <h3>Configuration of the Adapter to be called</h3> - <p> - A call to another Adapter in the same Frank!Framework instance is preferably made using the combination - of a FrankSender configured with the name of the adapter. - </p> - <h4>Configuring FrankSender and Adapter</h4> - <ul> - <li>Define a SenderPipe with a FrankSender</li> - <li>Set the attribute <code>target</code> to <i>targetAdapterName</i></li> - <li>If the adapter is in another Configuration deployed in the same Frank!Framework instance, then set <code>target</code> to <code>targetConfigurationName/targetAdapterName</code> (note the slash-separator between Configuration name and Adapter name).</li> - </ul> - In the Adapter to be called: - <ul> - <li>The adapter does not need to have a receiver configured to be called from a FrankSender,</li> - <li>The adapter will run in the same transaction as the calling adapter,</li> - <li>If the called adapter does not to run in its own transaction, set the transaction attributes on the PipeLine attribute of this adapter - or on the SenderPipe that contains this <code>FrankSender</code>.</li> - </ul> - - <h4>Configuring FrankSender with FrankListener</h4> - <ul> - <li>Define a SenderPipe with a FrankSender</li> - <li>In the target adapter, define a org.frankframework.receivers.Receiver with a FrankListener</li> - <li>Give a unique name to the listener: FrankListener#setName(String). If the name is not set, the name of the Adapter will be used.</li> - <li>Set the #setScope(Scope) to <code>LISTENER</code> and the #setTarget(String) to the listener name as per previous point</li> - <li>If the listener is in a different configuration, prefix the listener name with the name of the configuration and a slash (<code>/</code>) as separator between configuration and listener name</li> - </ul> - - <h4>Configuring FrankSender and Remote Application</h4> - <p> - <em>NB:</em> Please make sure that the IbisServiceDispatcher-1.4.jar or newer is present on the class path of the server. For more information, see: - </p> - <ul> - <li>Define a SenderPipe with a FrankSender</li> - <li>Set the attribute <code>scope</code> to either <code>JVM</code> for a Java application, or to <code>DLL</code> for code loaded from a DLL</li> - <li>Set the attribute <code>target</code> to the service-name the other application used to register itself</li> - </ul> - <p> - In the other application: - <ul> - <li>Implement the interface <code>nl.nn.adapterframework.dispatcher.RequestProcessor</code> from the IbisServiceDispatcher library</li> - <li>Register the instance with the <code>nl.nn.adapterframework.dispatcher.DispatcherManager</code> obtained via the <code>nl.nn.adapterframework.dispatcher.DispatcherManagerFactory</code></li> - <li>See the implementation code of the <code>JavaListener</code> in the Frank!Framework for an example</li> - </ul> - </p> - <p> - See also the repository of the IbisServiceDispatcher: - <a href="https://github.com/frankframework/servicedispatcher">https://github.com/frankframework/servicedispatcher</a> - </p> - - <h4>Using FrankSender to call an adapter from Larva tests</h4> - <p> - You can configure a FrankSender in Larva property files to use the FrankSender to invoke an adapter to test. When doing this, keep the following in mind: - <ul> - <li>If you leave the default scope as <code>ADAPTER</code>, then the <code>target</code> property needs to have both configuration name and adapter name, separated by a <code>/</code> character</li> - <li>When scope is left as default, the receiver and JavaListener are skipped and no transaction is started unless it is set on the adapter's <code>PipeLine</code></li> - <li>If you do need a transaction and the adapter has a JavaListener that has org.frankframework.receivers.JavaListener#setServiceName(String) defined, you can use the FrankSender with scope <code>JVM</code> - and set the <code>target</code> attribute to the <code>serviceName</code> attribute of the <code>JavaListener</code>.</li> - </ul> - </p> - - <h3>Migrating Existing Configurations</h3> - <p> - When one adapter (named A) needs to call another adapter (named B) like a subroutine, you will usually have an IbisLocalSender or an IbisJavaSender - in adapter A, and a org.frankframework.receivers.JavaListener in adapter B. - </p> - <p> - <em>NB:</em> For the example it is assumed that all adapters are defined in the same configuration. - </p> - - <h4>Example of Existing Configuration</h4> - The existing configuration might look like this in the calling adapter: - <pre><code>&lt;module&gt; - &lt;adapter name=&quot;Adapter A&quot;&gt; - &lt;receiver name=&quot;Adapter A Receiver&quot;&gt; - &lt;listener name=&quot;Adapter A Listener&quot; - className=&quot;org.frankframework...&quot; etc/&gt; - &lt;/receiver&gt; - &lt;pipeline firstPipe=&quot;...&quot;&gt; - &lt;pipe name=&quot;send&quot; className=&quot;org.frankframework.pipes.SenderPipe&quot;&gt; - &lt;sender className=&quot;org.frankframework.senders.IbisJavaSender&quot; - serviceName=&quot;service-Adapter-B&quot; /&gt; - &lt;forward name=&quot;success&quot; path=&quot;...&quot; /&gt; - &lt;/pipe&gt; - &lt;/pipeline&gt; - &lt;/adapter&gt; - &lt;/module&gt;</code></pre> - - Or like using the modern XML XSD and an IbisLocalSender instead: - <pre><code>&lt;Module&gt; - &lt;Adapter name=&quot;Adapter A&quot;&gt; - &lt;Receiver name=&quot;Adapter A Receiver&quot;&gt; - ... Listener setup and other configuration - &lt;/Receiver&gt; - &lt;Pipeline&gt; - &lt;SenderPipe name=&quot;send&quot;&gt; - &lt;IbisLocalSender name=&quot;call Adapter B&quot; - javaListener=&quot;Adapter B Listener&quot;/&gt; - &lt;Forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; - &lt;/SenderPipe&gt; - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;/Module&gt;</code></pre> - - In the receiving adapter B the listener would have been configured like this: - <pre><code>&lt;Module&gt; - &lt;Adapter name=&quot;adapter B&quot;&gt; - &lt;Receiver name=&quot;Receiver B&quot;&gt; - &lt;JavaListener name=&quot;Adapter B Listener&quot; serviceName=&quot;service-Adapter-B&quot;/&gt; - &lt;/Receiver&gt; - &lt;Pipeline&gt; - ... - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;/Module&gt;</code></pre> - <p/> - - <h4>Rewritten Example Configuration With FrankSender</h4> - This example shows the most simple way of using the FrankSender to call another adapter with least amount of overhead. - - <pre><code>&lt;Module&gt; - &lt;Adapter name=&quot;Adapter A&quot;&gt; - &lt;Receiver name=&quot;Adapter A Receiver&quot;&gt; - ... Listener setup and other configuration - &lt;/Receiver&gt; - &lt;Pipeline&gt; - &lt;SenderPipe name=&quot;send&quot;&gt; - &lt;!-- when scope=&quot;ADAPTER&quot;, then target is directly the name of the adapter you want to call --&gt; - &lt;FrankSender name=&quot;call Adapter C&quot; - scope=&quot;ADAPTER&quot; - target=&quot;adapter B&quot; - /&gt; - &lt;Forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; - &lt;/SenderPipe&gt; - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;Adapter name=&quot;adapter B&quot;&gt; - &lt;!-- No receiver needed for FrankSender in this scenario --&gt; - &lt;Pipeline&gt; - ... Exits, Pipes etc - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;/Module&gt;</code></pre> - - <h4>Rewritten Example Configuration With FrankSender and FrankListener</h4> - This example shows why you might want to call the other adapter via the FrankListener. This adds a bit more overhead to the call - of the sub-adapter for the extra error-handling done by the target receiver. - - <pre><code>&lt;Module&gt; - &lt;Adapter name=&quot;Adapter A&quot;&gt; - &lt;Receiver name=&quot;Adapter A Receiver&quot;&gt; - ... Listener setup and other configuration - &lt;/Receiver&gt; - &lt;Pipeline&gt; - &lt;SenderPipe name=&quot;send&quot;&gt; - &lt;!-- when scope=&quot;LISTENER&quot;, then target is directly the name of the FrankListener in the adapter you want to call --&gt; - &lt;FrankSender - scope=&quot;LISTENER&quot; - target=&quot;Adapter B Listener&quot;/&gt; - &lt;Forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; - &lt;/SenderPipe&gt; - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;Adapter name=&quot;adapter B&quot;&gt; - &lt;!-- Messages will only be sent to the error storage if: - - The target receiver is not transactional, and has maxTries=&quot;0&quot;, or - - The target receiver is transaction, and the Sender is set up to retry sending on error - For internal adapters, sending / receiving with retries might not make sense so the example does not show that. - --&gt; - &lt;Receiver name=&quot;Receiver B&quot; maxRetries=&quot;0&quot; transactionAttribute=&quot;NotSupported&quot;&gt; - &lt;!-- Listener name is optional, defaults to Adapter name --&gt; - &lt;FrankListener name=&quot;Adapter B Listener&quot;/&gt; - &lt;!-- This adapter now has an error storage -- without Receiver and FrankListener the sub-adapter couldn't have that --&gt; - &lt;JdbcErrorStorage slotId=&quot;Adapter B - Errors&quot; /&gt; - &lt;/Receiver&gt; - &lt;!-- If transactions are required, set transaction-attribute on the Pipeline --&gt; - &lt;Pipeline transactionAttribute=&quot;RequiresNew&quot;&gt; - ... Exits, Pipes etc - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;/Module&gt;</code></pre> - - - - - - - - - - - - - - - - - - - - - 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><br><br><b>INFO</b><p>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 Frank!Framework-adapter or an application in the same JVM using IbisServiceDispatcher. - <p> - 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. - </p> - The IbisJavaSender is now considered to be legacy. The new way to call another adapter or java application from your own - adapter is by using the FrankSender. - </p> - <h4>configuring IbisJavaSender and JavaListener</h4> - <ul> - <li><em>NB:</em> Using IbisJavaSender to call another adapter is inefficient and therefore not recommended. It is much more efficient to use for this a FrankSender or IbisLocalSender.</li> - <li>Define a org.frankframework.pipes.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. For more information, see: - <a href="https://github.com/frankframework/servicedispatcher">https://github.com/frankframework/servicedispatcher</a> - - - - - - - - - - - - Posts a message to another Frank!Framework-adapter in the same Frank!Framework instance. If the callee exits with an &lt;<code>exit</code>&gt; - 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> - The IbisLocalSender is now considered to be legacy. The new way to call another adapter from your own - adapter is by using the FrankSender. - </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 org.frankframework.receivers.Receiver with either a WebServiceListener - or a JavaListener. - </p> - - - <h3>Configuration of the Adapter to be called</h3> - A call to another Adapter in the same Frank!Framework 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 Frank!Framework-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.9 - - - - - - - - - - - - Implementation of sender that sends an IDoc to SAP. - N.B. The sending of the iDoc is committed right after the XA transaction is completed. - - - - - - - - - - - - - - - - - - - - - Sender 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]</code>. - </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: - <pre><code>&lt;sender - className=&quot;org.frankframework.ldap.LdapSender&quot; - ldapProviderURL=&quot;ldap://servername:389/o=ing&quot; - operation=&quot;read&quot; - attributesToReturn=&quot;givenName,sn,telephoneNumber&quot; &gt; - &lt;param name=&quot;entryName&quot; xpathExpression=&quot;entryName&quot; /&gt; - &lt;/sender&gt;</code></pre> - <br/> - - This may result in the following output: - <pre><code>&lt;ldap&gt; - &lt;entryName&gt;uid=srp,ou=people&lt;/entryName&gt; - &lt;attributes&gt; - &lt;attribute attrID=&quot;givenName&quot;&gt; - &lt;value&gt;Jan&lt;/value&gt; - &lt;/attribute&gt; - &lt;attribute attrID=&quot;telephoneNumber&quot;&gt; - &lt;value&gt;010 5131123&lt;/value&gt; - &lt;value&gt;06 23456064&lt;/value&gt; - &lt;/attribute&gt; - &lt;attribute attrID=&quot;sn&quot;&gt; - &lt;value&gt;Jansen&lt;/value&gt; - &lt;/attribute&gt; - &lt;/attributes&gt; - &lt;/ldap&gt;</code></pre> - <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/> - <pre><code>&lt;attributes&gt; - &lt;attribute&gt; - &lt;attribute name=&quot;employeeType&quot; value=&quot;Extern&quot;/&gt; - &lt;attribute name=&quot;roomNumber&quot; value=&quot;DP 2.13.025&quot;/&gt; - &lt;attribute name=&quot;departmentCode&quot; value=&quot;358000&quot;/&gt; - &lt;attribute name=&quot;organizationalHierarchy&quot;&gt; - &lt;item value=&quot;ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;item value=&quot;ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;item value=&quot;ou=000001,ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;/attribute&gt; - &lt;attribute name=&quot;givenName&quot; value=&quot;Gerrit&quot;/&gt; - &lt;/attributes&gt;</code></pre> - <br/> - Sample result of a <code>search</code> operation:<br/> - <pre><code>&lt;entries&gt; - &lt;entry name=&quot;uid=srp&quot;&gt; - &lt;attributes&gt; - &lt;attribute&gt; - &lt;attribute name=&quot;employeeType&quot; value=&quot;Extern&quot;/&gt; - &lt;attribute name=&quot;roomNumber&quot; value=&quot;DP 2.13.025&quot;/&gt; - &lt;attribute name=&quot;departmentCode&quot; value=&quot;358000&quot;/&gt; - &lt;attribute name=&quot;organizationalHierarchy&quot;&gt; - &lt;item value=&quot;ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;item value=&quot;ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;item value=&quot;ou=000001,ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;/attribute&gt; - &lt;attribute name=&quot;givenName&quot; value=&quot;Gerrit&quot;/&gt; - &lt;/attributes&gt; - &lt;/entry&gt; - &lt;entry&gt; .... &lt;/entry&gt; - ..... - &lt;/entries&gt;</code></pre> - <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 - <code>FileAttribute.</code>. - 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: - <pre><code>&lt;email&gt; - &lt;recipients&gt; - &lt;recipient type=&quot;to&quot;&gt;***@hotmail.com&lt;/recipient&gt; - &lt;recipient type=&quot;cc&quot;&gt;***@gmail.com&lt;/recipient&gt; - &lt;/recipients&gt; - &lt;from name=&quot;*** ***&quot;&gt;***@yahoo.com&lt;/from&gt; - &lt;subject&gt;This is the subject&lt;/subject&gt; - &lt;threadTopic&gt;subject&lt;/threadTopic&gt; - &lt;message&gt;This is the message&lt;/message&gt; - &lt;messageType&gt;text/plain&lt;/messageType&gt;&lt;!-- Optional --&gt; - &lt;messageBase64&gt;false&lt;/messageBase64&gt;&lt;!-- Optional --&gt; - &lt;charset&gt;UTF-8&lt;/charset&gt;&lt;!-- Optional --&gt; - &lt;attachments&gt; - &lt;attachment name=&quot;filename1.txt&quot;&gt;This is the first attachment&lt;/attachment&gt; - &lt;attachment name=&quot;filename2.pdf&quot; base64=&quot;true&quot;&gt;JVBERi0xLjQKCjIgMCBvYmoKPDwvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1...vSW5mbyA5IDAgUgo+PgpzdGFydHhyZWYKMzQxNDY2CiUlRU9GCg==&lt;/attachment&gt; - &lt;attachment name=&quot;filename3.pdf&quot; url=&quot;file:/c:/filename3.pdf&quot;/&gt; - &lt;attachment name=&quot;filename4.pdf&quot; sessionKey=&quot;fileContent&quot;/&gt; - &lt;/attachments&gt;&lt;!-- Optional --&gt; - &lt;/email&gt;</code></pre> - </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: - <pre><code>&lt;message&gt;&lt;![CDATA[&lt;h1&gt;This is a HtmlMessage&lt;/h1&gt;]]&gt;&lt;/message&gt;</code></pre> - </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: - <pre><code>&lt;SenderPipe name=&quot;Send&quot;&gt; - &lt;MessageStoreSender - slotId=&quot;${instance.name}/TestMessageStore&quot; - onlyStoreWhenMessageIdUnique=&quot;false&quot; /&gt; - &lt;/SenderPipe&gt;</code></pre> - - - - - - - - - - - - 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 access token used to authenticate with Akamai, you can use the authalias property. The username - represents the nonce and the password the access token.</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>&lt;SenderPipe&gt; - &lt;ReconnectSenderWrapper&gt; - &lt;EchoSender myAttribute=&quot;myValue&quot; /&gt; - &lt;/ReconnectSenderWrapper&gt; - &lt;/SenderPipe&gt;</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.<br><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</p> - - - - - - - - - - - - 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. - - - - - - - - - - - - Implementation of sender that calls a SAP RFC-function. - - N.B. If no requestFieldIndex or requestFieldName is specified, input is converted from xml; - If no replyFieldIndex or replyFieldName is specified, output is converted to xml. - - - - - - - - - - - - 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.xml - - - - - - - - - - - - Series 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>?</code>, should - have a corresponding IParameter entry. Output parameters should have <code>mode=&quot;OUTPUT&quot;</code>, or - <code>mode=&quot;INOUT&quot;</code> 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> - <pre><code>&lt;resultset&gt; - &lt;result param=&quot;r1&quot; type=&quot;STRING&quot;&gt;MESSAGE-CONTENTS&lt;/result&gt; - &lt;result param=&quot;r2&quot; type=&quot;STRING&quot;&gt;E&lt;/result&gt; - &lt;/resultset&gt;</code></pre> - - <h4>Example with Resultset and Simple Output Parameters</h4> - <pre><code>&lt;resultset&gt; - &lt;result resultNr=&quot;1&quot;&gt; - &lt;fielddefinition&gt; - &lt;field name=&quot;FIELDNAME&quot; - type=&quot;columnType&quot; - columnDisplaySize=&quot;&quot; - precision=&quot;&quot; - scale=&quot;&quot; - isCurrency=&quot;&quot; - columnTypeName=&quot;&quot; - columnClassName=&quot;&quot;/&gt; - &lt;field ...../&gt; - &lt;/fielddefinition&gt; - &lt;rowset&gt; - &lt;row number=&quot;0&quot;&gt; - &lt;field name=&quot;TKEY&quot;&gt;MSG-ID&lt;/field&gt; - &lt;field name=&quot;TCHAR&quot;&gt;E&lt;/field&gt; - &lt;field name=&quot;TMESSAGE&quot;&gt;MESSAGE-CONTENTS&lt;/field&gt; - &lt;field name=&quot;TCLOB&quot; null=&quot;true&quot;/&gt; - &lt;field name=&quot;TBLOB&quot; null=&quot;true&quot;/&gt; - &lt;/row&gt; - &lt;row number=&quot;1&quot; ...../&gt; - &lt;/rowset&gt; - &lt;/result&gt; - &lt;result param=&quot;count&quot; type=&quot;INTEGER&quot;&gt;5&lt;/result&gt; - &lt;/resultset&gt;</code></pre> - - <h4>Example with Simple and Cursor Output Parameters</h4> - <pre><code>&lt;resultset&gt; - &lt;result param=&quot;count&quot; type=&quot;INTEGER&quot;&gt;5&lt;/result&gt; - &lt;result param=&quot;cursor1&quot; type=&quot;LIST&quot;&gt; - &lt;fielddefinition&gt; - &lt;field name=&quot;FIELDNAME&quot; - type=&quot;columnType&quot; - columnDisplaySize=&quot;&quot; - precision=&quot;&quot; - scale=&quot;&quot; - isCurrency=&quot;&quot; - columnTypeName=&quot;&quot; - columnClassName=&quot;&quot;/&gt; - &lt;field ...../&gt; - &lt;/fielddefinition&gt; - &lt;rowset&gt; - &lt;row number=&quot;0&quot;&gt; - &lt;field name=&quot;TKEY&quot;&gt;MSG-ID&lt;/field&gt; - &lt;field name=&quot;TCHAR&quot;&gt;E&lt;/field&gt; - &lt;field name=&quot;TMESSAGE&quot;&gt;MESSAGE-CONTENTS&lt;/field&gt; - &lt;field name=&quot;TCLOB&quot; null=&quot;true&quot;/&gt; - &lt;field name=&quot;TBLOB&quot; null=&quot;true&quot;/&gt; - &lt;/row&gt; - &lt;row number=&quot;1&quot; ..... /&gt; - &lt;/rowset&gt; - &lt;/result&gt; - &lt;/resultset&gt;</code></pre> - </p><br><br><b>INFO</b><p>Support for stored procedures is currently experimental and changes in the currently produced output-format are expected.</p><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</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> - <pre><code>&lt;browse&gt; - &lt;jmsRealm&gt;qcf&lt;/jmsRealm&gt; - &lt;destinationName&gt;jms/GetPolicyDetailsRequest&lt;/destinationName&gt; - &lt;destinationType&gt;QUEUE&lt;/destinationType&gt; - &lt;/browse&gt;</code></pre> - </p> - <p> - <b>example (browse output):</b> - <pre><code>&lt;result&gt; - &lt;items count=&quot;2&quot;&gt; - &lt;item&gt; - &lt;timestamp&gt;Thu Nov 20 13:36:31 CET 2014&lt;/timestamp&gt; - &lt;messageId&gt;ID:LPAB00000003980-61959-1416486781822-3:5:33:1:1&lt;/messageId&gt; - &lt;correlationId&gt;...&lt;/correlationId&gt; - &lt;message&gt;&lt;![CDATA[...]]&gt;&lt;/message&gt; - &lt;/item&gt; - &lt;item&gt; - &lt;timestamp&gt;Thu Dec 12 11:59:22 CET 2014&lt;/timestamp&gt; - &lt;messageId&gt;ID:LPAB00000003980-58359-1721486799722-3:4:19:1:1&lt;/messageId&gt; - &lt;correlationId&gt;...&lt;/correlationId&gt; - &lt;message&gt;&lt;![CDATA[...]]&gt;&lt;/message&gt; - &lt;/item&gt; - &lt;/items&gt; - &lt;/result&gt;</code></pre> - </p> - - <p> - <b>example (remove output):</b> - <pre><code>&lt;result&gt; - &lt;itemsRemoved&gt;2&lt;/itemsRemoved&gt; - &lt;/result&gt;</code></pre> - - - - - - - - - - - - QuerySender that transforms the input message to a query. - <br/> - <pre><code>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] - - alter - sequenceName - - startWith - - sql - type [0..1] one of {select;ddl;other}, other by default - - query</code></pre> - <br/><br><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</p> - - - - - - - - - - - - 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. - - - - - - - - - - + + + + + + + + + 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: false + + + + + + + + + + + + + - - - + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The WSDL to read the XSDs from + + + + + 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,). 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 WSDL + + + + + Creates <code>schemaLocation</code> attribute based on the WSDL and replaces the namespace of the soap body element + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The 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,) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The 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 schema + + + + + Default 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: XML + + + + + + + + Session key to retrieve outputFormat from Default: outputFormat + + + + + Session 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: <code>Json2XmlValidator.inputFormat </code>&lt;name of the pipe&gt; + + + + + 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: true + + + + + If true assume arrays in JSON do not have the element containers like in XML Default: true + + + + + If 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: false + + + + + If true, assume that JSON contains/must contain a root element Default: false + + + + + If 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: false + + + + + If true, and converting from JSON to XML, elements in JSON that are not found in the XML Schema are ignored Default: false + + + + + If 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: true + + + + + If 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: false + + + + + If true, all XML that is generated is without a namespace set Default: false + + + + + If 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: true + + + + + Allow JSON input Default: true + + + + + + + + + + + + + + + + The 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 used + + + + + + + + + + + + + + + + + Ignore namespaces in the input message which are unknown Default: true when <code>schema</code> or <code>noNamespaceSchemaLocation</code> is used, false otherwise + + + + + + + + + + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + + + + + + + + + + + + + + + + + + + + + + + + + + - Optional identifier for this storage, to be able to share the physical storage between a number of receivers and pipes. + Name of the root element - + - 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 Pipe + Name of the response root element + + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. - - - + + + + + + + + + + + + + + + + + + + + + + - - + + - Timeout <i>in milliseconds</i> for receiving a message from the queue Default: 3000 + If set, the processing continues directly at the forward of this pipe, without executing the pipe itself, if the input is empty Default: false - + - Regular 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 (?&lt;=&lt;party&gt;).*?(?=&lt;/party&gt;) will replace every - character between keys &lt;party&gt; and &lt;/party&gt; - <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. + If 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) - + - (Only used when hideRegex is not empty) Specifies the way to hide Default: ALL + See <code>ifParam</code> - - - - - - - - - - - - - - - - - - - - - - - - - - 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. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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. - - - - - - - - - - - - - - + + + Key of session variable to check if action must be executed. The pipe is only executed if the session variable exists and is not null + + + + + Value of session variable 'onlyIfSessionKey' to check if action must be executed. The pipe is only executed if the session variable has the specified value + + + + + Key of session variable to check if action must be executed. The pipe is not executed if the session variable exists and is not null + + + + + Value of session variable 'unlessSessionKey' to check if action must be executed. The pipe is not executed if the session variable has the specified value + + + + + + + + + + + - - + + + + + + + + + + + + - returned message + Only used when <code>mode=reg</code>!</b> Sets the Common Message Header version. 1 or 2 Default: 1 - + + + + + + + + + + + + + + + + + - name of the file containing the result message + either 3.1 or 3.2 Default: 3.1 - - - - - - - - - + + + + + + + + - - - - + + + + The JSON Schema to validate to + + + + + Prefix to element name to find subschema in schema Default: /definitions/ + + + + + If set: key of session variable to store reasons of mis-validation in Default: failureReason + + + + + + + + + + + - - - - - - - + + - URL to the stylesheet used to transform the output of the standard ErrorMessageFormatter + name of the root element - + - xPathExpression to use for transformation + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. - - - + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -10618,17 +5180,17 @@ - + - + - + - + Extension to WsdlXmlValidator for API Management. @@ -10645,12 +5207,12 @@ - + - + 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. @@ -10658,12 +5220,12 @@ - + - + FxF XML validator to be used with FxF3. When receiving files (direction=receive) the message is validated against the @@ -10675,476 +5237,515 @@ - + - + <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. + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - Pipe that validates the input message against a JSON Schema. + 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>&nbsp;</td><td>&nbsp;</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>&nbsp;</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> - - + + - + - XmlValidator that will automatically add the SOAP envelope XSD to the set of XSD's used for validation. + Extension to SoapWrapperPipe for separate modes. - 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> + <p><b>Configuration </b><i>(where deviating from SoapWrapperPipe)</i><b>:</b> <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. + <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>&nbsp;</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Id</td><td>2</td><td>$fromId</td></tr> + <tr><td>To</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Location</td><td>2</td><td>if $messagingLayer='P2P' then<br/>&nbsp;$messagingLayer.$businessDomain.$applicationName.$applicationFunction.$paradigm<br/>else if $serviceContext is not empty then<br/>&nbsp;$messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceContext.$serviceContextVersion.$operationName.$operationVersion.$paradigm<br/>else<br/>&nbsp;$messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceVersion.$operationName.$operationVersion.$paradigm</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>service(Context)Version</td><td>1</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + <tr><td>applicationName</td><td>&nbsp;</td></tr> + <tr><td>applicationFunction</td><td>&nbsp;</td></tr> + <tr><td>messagingLayer</td><td>ESB</td></tr> + <tr><td>serviceLayer</td><td>&nbsp;</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>&nbsp;</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Id</td><td>2</td><td>$fromId</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</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>&nbsp;</td><td>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</td></tr> + <tr><td>errorReason</td><td>&nbsp;</td></tr> + <tr><td>errorDetailCode</td><td>&nbsp;</td></tr> + <tr><td>errorDetailText</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</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>&nbsp;</td><td>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</td></tr> + <tr><td>errorReason</td><td>&nbsp;</td></tr> + <tr><td>errorDetailCode</td><td>&nbsp;</td></tr> + <tr><td>errorDetailText</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + </table> + </p> - - + + - + - Pipe that validates the input message against an XML Schema. + 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 DTAP 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}). - - + + - + - <code>Pipe</code> that checks the well-formedness of the input message. - If <code>root</code> is given then this is also checked. + Pipe to wrap or unwrap a message from/into a SOAP Envelope. - - + + - - - - - - - - - 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: false - - - - - - - - - - - - - - - - - - The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The WSDL to read the XSDs from - - - - - 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,). 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 WSDL - - - - - Creates <code>schemaLocation</code> attribute based on the WSDL and replaces the namespace of the soap body element - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The 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,) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The 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 schema - - - + + - Default 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: XML + Default: wrap - + - + - Session key to retrieve outputFormat from Default: outputFormat + Soap version to use Default: auto + + + - + - Session 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: <code>Json2XmlValidator.inputFormat </code>&lt;name of the pipe&gt; + (only used when direction=<code>wrap</code>) Namespace of the soap envelope Default: auto determined from soapVersion - + - 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: true + Key of session variable to store auto-detected soapNamespace Default: If configured as Pipeline Input Wrapper or PipeLine Output Wrapper: <code>soapNamespace</code> - + - If true assume arrays in JSON do not have the element containers like in XML Default: true + Key of session variable to store soap header Default: If configured as Pipeline Input Wrapper and direction=<code>unwrap</code>: <code>soapHeader</code> - + - If 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: false + The encodingStyle to be set in the soap header - + - If true, assume that JSON contains/must contain a root element Default: false + The 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 - + - If 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: false + (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= - + - If true, and converting from JSON to XML, elements in JSON that are not found in the XML Schema are ignored Default: false + (only used when direction=<code>wrap</code>) Stylesheet to apply to the input message. Note: outputType=<code>xml</code> and xsltVersion=2 - + - If 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: true + (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 - + - If 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: 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 - + - If true, all XML that is generated is without a namespace set Default: false + (only used when direction=<code>wrap</code>) If not empty, this namespace is added to the root element in the soap body - + - If 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: true + If not empty, the root element in the soap body is changed to this value - + - Allow JSON input Default: true + (only used when direction=<code>unwrap</code>) If <code>false</code> and the soap body contains a soap fault, a PipeRunException is thrown Default: false - - - - - - - - - - - - + - The 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. + For direction=<code>unwrap</code> only: if true, allow unwrapped xml too Default: false - - - + - 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 used + alias used to obtain credentials for authentication to WebServiceSecurity - - - - - - - - - - - - - + - Ignore namespaces in the input message which are unknown Default: true when <code>schema</code> or <code>noNamespaceSchemaLocation</code> is used, false otherwise + Default username for WebServiceSecurity - - - - - - - - - + - The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + Default password for WebServiceSecurity - - - - - - - - - - - - - - - - - - - - - - - - + - Name of the root element + If true, the password is sent digested; Otherwise it is sent in clear text Default: true - + - Name of the response root element + For direction=<code>wrap</code> only: When false, adds an XML declaration to the output message. Default: true @@ -11153,8 +5754,8 @@ - - + + @@ -11176,323 +5777,110 @@ - - + + + + + + + - If set, the processing continues directly at the forward of this pipe, without executing the pipe itself, if the input is empty Default: false + Default: REG + + + - + - If 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) + <b>Only used when <code>mode=reg</code>!</b> Sets the Common Message Header version. 1 or 2 Default: 1 - + - See <code>ifParam</code> + (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 - + - Key of session variable to check if action must be executed. The pipe is only executed if the session variable exists and is not null + (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: true - + - Value of session variable 'onlyIfSessionKey' to check if action must be executed. The pipe is only executed if the session variable has the specified value + If <code>true</code>, the fields CorrelationId, MessageId and Timestamp will have a fixed value (for testing purposes only) Default: false - + - Key of session variable to check if action must be executed. The pipe is not executed if the session variable exists and is not null + (only used when <code>direction=wrap</code>) when <code>true</code> and the Result tag already exists, the namespace is changed Default: false - + - Value of session variable 'unlessSessionKey' to check if action must be executed. The pipe is not executed if the session variable has the specified value + When the messagingLayer part of the destination has this value interpret it as P2P - - - - - - - - - - - - - - - - - - - - - - + - Only used when <code>mode=reg</code>!</b> Sets the Common Message Header version. 1 or 2 Default: 1 + When the messagingLayer part of the destination has this value interpret it as ESB - - - + + + - + - - + + - - - - - - - + + - either 3.1 or 3.2 Default: 3.1 + The 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. - - - - - - - - - - - - + - The JSON Schema to validate to + specifies the output folder if transformFilename=<code>false</code> and direction=wrap - + - Prefix to element name to find subschema in schema Default: /definitions/ + when <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: true - + + + + + + + - If set: key of session variable to store reasons of mis-validation in Default: failureReason + either 3.1 or 3.2 Default: 3.1 - - - - - - - - - - - - + - name of the root element + when set to <code>true</code>, the folder corresponding fxf.dir property will be created in case it does not exist Default: false - + - The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + when set to <code>true</code>, ServerFileName from the input will be used as the filename Default: false - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - 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>&nbsp;</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. - - - - - - - - - - - - + - + @@ -11502,17 +5890,17 @@ - + - + - + - + Extension to SoapWrapperPipe for API Management. <p> @@ -11545,12 +5933,12 @@ - + - + Extension to SoapWrapperPipe for separate modes. @@ -11753,12 +6141,12 @@ - + - + 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 @@ -11766,7 +6154,7 @@ 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 + available on the DTAP 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}). @@ -11774,848 +6162,5151 @@ - + - + + + Pipe to wrap or unwrap a message from/into a SOAP Envelope. + + + + + + + + + + + + + + + + + + + + + + + + + + + - Pipe to wrap or unwrap a message from/into a SOAP Envelope. + General 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>. - - + + - - - - - - - - - + + + - - + + - Default: wrap + The maximum number of elements in memory, before they are evicted Default: 100 - - - - + - Soap version to use Default: auto + Either <code>LRU</code>=Least Recent Use,<code>LFU</code>=Least Frequent Use or <code>FIFO</code>=First In - First Out Default: LRU - - - - + - (only used when direction=<code>wrap</code>) Namespace of the soap envelope Default: auto determined from soapVersion + If <code>true</code>, the elements in the cache are eternal, i.e. never expire Default: false - + - Key of session variable to store auto-detected soapNamespace Default: If configured as Pipeline Input Wrapper or PipeLine Output Wrapper: <code>soapNamespace</code> + The amount of time <i>in seconds</i> to live for an element from its creation date Default: 36000 - + - Key of session variable to store soap header Default: If configured as Pipeline Input Wrapper and direction=<code>unwrap</code>: <code>soapHeader</code> + The amount of time <i>in seconds</i> to live for an element from its last accessed or modified date Default: 36000 - + - The encodingStyle to be set in the soap header + If <code>true</code>, the elements that are evicted from memory are spooled to disk Default: false - + - The 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 + The maximum number of elements on disk, before they are removed Default: 10000 - + - (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= + If <code>true</code>, the cache is stored on disk and survives configuration reloads & JVM restarts. Default: false - + - (only used when direction=<code>wrap</code>) Stylesheet to apply to the input message. Note: outputType=<code>xml</code> and xsltVersion=2 + How often to run the disk store expiry thread Default: 600 - + + + + + + + - (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 + name of the cache, will be lowercased Default: <code>&lt;ownerName&gt;</code>_cache - + - (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 + xpath expression to extract cache key from request message - + - (only used when direction=<code>wrap</code>) If not empty, this namespace is added to the root element in the soap body + output type of xpath expression to extract cache key from request message Default: text + + + - + - If not empty, the root element in the soap body is changed to this value + namespace defintions for keyxpath. must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code> definitions - + - (only used when direction=<code>unwrap</code>) If <code>false</code> and the soap body contains a soap fault, a PipeRunException is thrown Default: false + stylesheet to extract cache key from request message. Use in combination with cacheEmptyKeys to inhibit caching for certain groups of request messages - + - For direction=<code>unwrap</code> only: if true, allow unwrapped xml too Default: false + session key to use as input for transformation of request message to key by keyxpath or keystylesheet - + - alias used to obtain credentials for authentication to WebServiceSecurity + controls whether empty keys are used for caching. when set true, cache entries with empty keys can exist. Default: false - + - Default username for WebServiceSecurity + xpath expression to extract value to be cached key from response message. Use in combination with cacheEmptyValues to inhibit caching for certain groups of response messages - + + + + + + - Default password for WebServiceSecurity + namespace defintions for valuexpath. must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code> definitions - + - If true, the password is sent digested; Otherwise it is sent in clear text Default: true + stylesheet to extract value to be cached from response message - + + + session key to use as input for transformation of response message to cached value by valuexpath or valuestylesheet + + + + + controls whether empty values will be cached. when set true, empty cache entries can exist for any key. Default: false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Manager that decides the handlers based on the content of a field in the specified + position in a record. The fields in the record are separated by a separator. + The value of the specified field is taken as key in the flow-table. + + + + + + + + + + + + Manager that decides the handlers based on the content of a field in the specified + position in a record. The fields in the record are of a fixed length. + The data beween the start position and end position is taken as key in the flow-table. + + + + + + + + + + + + + + + + + + - For direction=<code>wrap</code> only: When false, adds an XML declaration to the output message. Default: true + position of field that identifies the recordtype (position of first field is 1) - + - The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + separator that separates the fields in the record - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + + + - - - - 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: true - - - - - If <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: false - - - + + + + + + + - When the messagingLayer part of the destination has this value interpret it as P2P + Name of the manager - + - When the messagingLayer part of the destination has this value interpret it as ESB + This manager is the initial manager, i.e. to be used for the first record Default: false + + - - - - - - - - + + + + - - - - The 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=wrap - - - - - when <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: true - - - - - - - - - - - either 3.1 or 3.2 Default: 3.1 - - - + + - when set to <code>true</code>, the folder corresponding fxf.dir property will be created in case it does not exist Default: false + Start position of the field in the record that identifies the recordtype (first character is 0) Default: 0 - + - when set to <code>true</code>, ServerFileName from the input will be used as the filename Default: false + If endposition &gt;= 0 then this field contains the endPosition of the recordtype field in the record; All characters beyond this position are ignored. Else, if endPosition &lt; 0 then it depends on the length of the recordkey in the flow Default: -1 - - - + + + - + - + + + + + + + + + + + + + + + + Basic InputStreamReaderFactory. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Domparser 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 + <code>FileAttribute.</code>. + 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=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>&lt;cmis&gt; + &lt;id&gt;documentId&lt;/id&gt; + &lt;/cmis&gt;</code></pre> + </p> + <p> + When <code>action=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>&lt;cmis&gt; + &lt;id&gt;documentId&lt;/id&gt; + &lt;/cmis&gt;</code></pre> + </p> + <p> + When <code>action=create</code> the input (xml string) indicates document properties to set. This input is optional. + </p> + <p> + <b>Example:</b> + <pre><code>&lt;cmis&gt; + &lt;name&gt;Offerte&lt;/name&gt; + &lt;objectTypeId&gt;NNB_Geldlening&lt;/objectTypeId&gt; + &lt;mediaType&gt;application/pdf&lt;/mediaType&gt; + &lt;properties&gt; + &lt;property name=&quot;ArrivedAt&quot; type=&quot;datetime&quot; formatString=&quot;yyyy-MM-dd'T'HH:mm:ss.SSSz&quot;&gt;2014-11-27T16:43:01.268+0100&lt;/property&gt; + &lt;property name=&quot;ArrivedBy&quot;&gt;HDN&lt;/property&gt; + &lt;property name=&quot;DocumentType&quot;&gt;Geldlening&lt;/property&gt; + &lt;/properties&gt; + &lt;/cmis&gt;</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>&nbsp;</td></tr> + </table> + </p> + <p> + When <code>action=find</code> the input (xml string) indicates the query to perform. + </p> + <p> + <b>Example:</b> + <pre><code>&lt;query&gt; + &lt;statement&gt;select * from cmis:document&lt;/statement&gt; + &lt;maxItems&gt;10&lt;/maxItems&gt; + &lt;skipCount&gt;0&lt;/skipCount&gt; + &lt;searchAllVersions&gt;true&lt;/searchAllVersions&gt; + &lt;includeAllowableActions&gt;true&lt;/includeAllowableActions&gt; + &lt;/query</code></pre> + </p> + <p> + When <code>action=update</code> the input (xml string) indicates document properties to update. + </p> + <p> + <b>Example:</b> + <pre><code>&lt;cmis&gt; + &lt;id&gt;123456789&lt;/id&gt; + &lt;properties&gt; + &lt;property name=&quot;ArrivedAt&quot; type=&quot;datetime&quot; formatString=&quot;yyyy-MM-dd'T'HH:mm:ss.SSSz&quot;&gt;2014-11-27T16:43:01.268+0100&lt;/property&gt; + &lt;property name=&quot;ArrivedBy&quot;&gt;HDN&lt;/property&gt; + &lt;property name=&quot;DocumentType&quot;&gt;Geldlening&lt;/property&gt; + &lt;/properties&gt; + &lt;/cmis&gt;</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>&nbsp;</td></tr> + <tr><td>property</td><td>custom document property to update. See <code>action=create</code> for possible attributes</td><td>&nbsp;</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.<br><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</p> + + + + + + + + + + + + Echos input to output. + + + + + + + + + + + + ESB (Enterprise Service Bus) extension of JmsSender. + + + + + + + + + + + + Implementation of a AbstractFileSystemSender that enables to manipulate messages in an Exchange folder. + + + + + + + + + + + + FileSystem Sender extension to handle Attachments. + + + + + + + + + + + + QuerySender that assumes a fixed query, possibly with attributes.<br><br><b>INFO</b><p>See DB2XMLWriter for ResultSet!</p><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</p> + + + + + + + + + + + + FixedResultSender, same behaviour as FixedResultPipe, but now as a ISender. + + + + + + + + + + + + Sender to send a message to another Frank! Adapter, or an external program running in the same JVM as the Frank!Framework. + <p> + Sends a message to another Frank!Framework-adapter in the same Frank!Framework instance, or an external program running in + the same JVM as the Frank!Framework. If the callee exits with an <code>&lt;Exit/&gt;</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 <code>exit.code</code> as forward name to the SenderPipe, provided that <code>exit.code</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> + A FrankSender makes a call to either an Adapter or an external program by setting the #scope. By default the scope is <code>ADAPTER</code>. + </p> + <p/> + + <h3>Configuration of the Adapter to be called</h3> + <p> + A call to another Adapter in the same Frank!Framework instance is preferably made using the combination + of a FrankSender configured with the name of the adapter. + </p> + <h4>Configuring FrankSender and Adapter</h4> + <ul> + <li>Define a SenderPipe with a FrankSender</li> + <li>Set the attribute <code>target</code> to <i>targetAdapterName</i></li> + <li>If the adapter is in another Configuration deployed in the same Frank!Framework instance, then set <code>target</code> to <code>targetConfigurationName/targetAdapterName</code> (note the slash-separator between Configuration name and Adapter name).</li> + </ul> + In the Adapter to be called: + <ul> + <li>The adapter does not need to have a dedicated receiver configured to be called from a FrankSender.</li> + <li>The adapter will run in the same transaction as the calling adapter.</li> + <li>If the called adapter does not to run in its own transaction, set the transaction attributes on the PipeLine attribute of this adapter + or on the SenderPipe that contains this <code>FrankSender</code>.</li> + </ul> + + <h4>Configuring FrankSender with FrankListener</h4> + <ul> + <li>Define a SenderPipe with a FrankSender</li> + <li>In the target adapter, define a org.frankframework.receivers.Receiver with a FrankListener</li> + <li>Give a unique name to the listener: FrankListener#setName(String). If the name is not set, the name of the Adapter will be used.</li> + <li>Set the #setScope(Scope) to <code>LISTENER</code> and the #setTarget(String) to the listener name as per previous point</li> + <li>If the listener is in a different configuration, prefix the listener name with the name of the configuration and a slash (<code>/</code>) as separator between configuration and listener name</li> + </ul> + + <h4>Configuring FrankSender and Remote Application</h4> + <p> + <em>NB:</em> Please make sure that the IbisServiceDispatcher-1.4.jar or newer is present on the class path of the server. For more information, see: + </p> + <ul> + <li>Define a SenderPipe with a FrankSender</li> + <li>Set the attribute <code>scope</code> to either <code>JVM</code> for a Java application, or to <code>DLL</code> for code loaded from a DLL</li> + <li>Set the attribute <code>target</code> to the service-name the other application used to register itself</li> + </ul> + <p> + In the other application: + <ul> + <li>Implement the interface <code>nl.nn.adapterframework.dispatcher.RequestProcessor</code> from the IbisServiceDispatcher library</li> + <li>Register the instance with the <code>nl.nn.adapterframework.dispatcher.DispatcherManager</code> obtained via the <code>nl.nn.adapterframework.dispatcher.DispatcherManagerFactory</code></li> + <li>See the implementation code of the <code>JavaListener</code> in the Frank!Framework for an example</li> + </ul> + </p> + <p> + See also the repository of the IbisServiceDispatcher: + <a href="https://github.com/frankframework/servicedispatcher">https://github.com/frankframework/servicedispatcher</a> + </p> + + <h4>Using FrankSender to call an adapter from Larva tests</h4> + <p> + You can configure a FrankSender in Larva property files to use the FrankSender to invoke an adapter to test. When doing this, keep the following in mind: + <ul> + <li>If you leave the default scope as <code>ADAPTER</code>, then the <code>target</code> property needs to have both configuration name and adapter name, separated by a <code>/</code> character</li> + <li>When scope is left as default, the receiver and JavaListener are skipped and no transaction is started unless it is set on the adapter's <code>PipeLine</code></li> + <li>If you do need a transaction and the adapter has a JavaListener that has org.frankframework.receivers.JavaListener#setServiceName(String) defined, you can use the FrankSender with scope <code>JVM</code> + and set the <code>target</code> attribute to the <code>serviceName</code> attribute of the <code>JavaListener</code>.</li> + </ul> + </p> + + <h3>Migrating Existing Configurations</h3> + <p> + When one adapter (named A) needs to call another adapter (named B) like a subroutine, you will usually have an IbisLocalSender or an IbisJavaSender + in adapter A, and a org.frankframework.receivers.JavaListener in adapter B. + </p> + <p> + <em>NB:</em> For the example it is assumed that all adapters are defined in the same configuration. + </p> + + <h4>Example of Existing Configuration</h4> + The existing configuration might look like this in the calling adapter: + <pre><code>&lt;module&gt; + &lt;adapter name=&quot;Adapter A&quot;&gt; + &lt;receiver name=&quot;Adapter A Receiver&quot;&gt; + &lt;listener name=&quot;Adapter A Listener&quot; + className=&quot;org.frankframework...&quot; etc/&gt; + &lt;/receiver&gt; + &lt;pipeline firstPipe=&quot;...&quot;&gt; + &lt;pipe name=&quot;send&quot; className=&quot;org.frankframework.pipes.SenderPipe&quot;&gt; + &lt;sender className=&quot;org.frankframework.senders.IbisJavaSender&quot; + serviceName=&quot;service-Adapter-B&quot; /&gt; + &lt;forward name=&quot;success&quot; path=&quot;...&quot; /&gt; + &lt;/pipe&gt; + &lt;/pipeline&gt; + &lt;/adapter&gt; + &lt;/module&gt;</code></pre> + + Or like using the modern XML XSD and an IbisLocalSender instead: + <pre><code>&lt;Module&gt; + &lt;Adapter name=&quot;Adapter A&quot;&gt; + &lt;Receiver name=&quot;Adapter A Receiver&quot;&gt; + ... Listener setup and other configuration + &lt;/Receiver&gt; + &lt;Pipeline&gt; + &lt;SenderPipe name=&quot;send&quot;&gt; + &lt;IbisLocalSender name=&quot;call Adapter B&quot; + javaListener=&quot;Adapter B Listener&quot;/&gt; + &lt;Forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; + &lt;/SenderPipe&gt; + &lt;/Pipeline&gt; + &lt;/Adapter&gt; + &lt;/Module&gt;</code></pre> + + In the receiving adapter B the listener would have been configured like this: + <pre><code>&lt;Module&gt; + &lt;Adapter name=&quot;adapter B&quot;&gt; + &lt;Receiver name=&quot;Receiver B&quot;&gt; + &lt;JavaListener name=&quot;Adapter B Listener&quot; serviceName=&quot;service-Adapter-B&quot;/&gt; + &lt;/Receiver&gt; + &lt;Pipeline&gt; + ... + &lt;/Pipeline&gt; + &lt;/Adapter&gt; + &lt;/Module&gt;</code></pre> + <p/> + + <h4>Rewritten Example Configuration With FrankSender</h4> + This example shows the most simple way of using the FrankSender to call another adapter with least amount of overhead. + + <pre><code>&lt;Module&gt; + &lt;Adapter name=&quot;Adapter A&quot;&gt; + &lt;Receiver name=&quot;Adapter A Receiver&quot;&gt; + ... Listener setup and other configuration + &lt;/Receiver&gt; + &lt;Pipeline&gt; + &lt;SenderPipe name=&quot;send&quot;&gt; + &lt;!-- when scope=&quot;ADAPTER&quot;, then target is directly the name of the adapter you want to call --&gt; + &lt;FrankSender name=&quot;call Adapter C&quot; + scope=&quot;ADAPTER&quot; + target=&quot;adapter B&quot; + /&gt; + &lt;Forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; + &lt;/SenderPipe&gt; + &lt;/Pipeline&gt; + &lt;/Adapter&gt; + &lt;Adapter name=&quot;adapter B&quot;&gt; + &lt;!-- No receiver needed for FrankSender in this scenario --&gt; + &lt;Pipeline&gt; + ... Exits, Pipes etc + &lt;/Pipeline&gt; + &lt;/Adapter&gt; + &lt;/Module&gt;</code></pre> + + <h4>Rewritten Example Configuration With FrankSender and FrankListener</h4> + This example shows why you might want to call the other adapter via the FrankListener. This adds a bit more overhead to the call + of the sub-adapter for the extra error-handling done by the target receiver. + + <pre><code>&lt;Module&gt; + &lt;Adapter name=&quot;Adapter A&quot;&gt; + &lt;Receiver name=&quot;Adapter A Receiver&quot;&gt; + ... Listener setup and other configuration + &lt;/Receiver&gt; + &lt;Pipeline&gt; + &lt;SenderPipe name=&quot;send&quot;&gt; + &lt;!-- when scope=&quot;LISTENER&quot;, then target is directly the name of the FrankListener in the adapter you want to call --&gt; + &lt;FrankSender + scope=&quot;LISTENER&quot; + target=&quot;Adapter B Listener&quot;/&gt; + &lt;Forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; + &lt;/SenderPipe&gt; + &lt;/Pipeline&gt; + &lt;/Adapter&gt; + &lt;Adapter name=&quot;adapter B&quot;&gt; + &lt;!-- Messages will only be sent to the error storage if: + - The target receiver is not transactional, and has maxTries=&quot;0&quot;, or + - The target receiver is transaction, and the Sender is set up to retry sending on error + For internal adapters, sending / receiving with retries might not make sense so the example does not show that. + --&gt; + &lt;Receiver name=&quot;Receiver B&quot; maxRetries=&quot;0&quot; transactionAttribute=&quot;NotSupported&quot;&gt; + &lt;!-- Listener name is optional, defaults to Adapter name --&gt; + &lt;FrankListener name=&quot;Adapter B Listener&quot;/&gt; + &lt;!-- This adapter now has an error storage -- without Receiver and FrankListener the sub-adapter couldn't have that --&gt; + &lt;JdbcErrorStorage slotId=&quot;Adapter B - Errors&quot; /&gt; + &lt;/Receiver&gt; + &lt;!-- If transactions are required, set transaction-attribute on the Pipeline --&gt; + &lt;Pipeline transactionAttribute=&quot;RequiresNew&quot;&gt; + ... Exits, Pipes etc + &lt;/Pipeline&gt; + &lt;/Adapter&gt; + &lt;/Module&gt;</code></pre> + + + + + + + + + + + + + + + + + + + + + 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><br><br><b>INFO</b><p>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 Frank!Framework-adapter or an application in the same JVM using IbisServiceDispatcher. + <p> + 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. + </p> + The IbisJavaSender is now considered to be legacy. The new way to call another adapter or java application from your own + adapter is by using the FrankSender. + </p> + <h4>configuring IbisJavaSender and JavaListener</h4> + <ul> + <li><em>NB:</em> Using IbisJavaSender to call another adapter is inefficient and therefore not recommended. It is much more efficient to use for this a FrankSender or IbisLocalSender.</li> + <li>Define a org.frankframework.pipes.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. For more information, see: + <a href="https://github.com/frankframework/servicedispatcher">https://github.com/frankframework/servicedispatcher</a> + + + + + + + + + + + + Posts a message to another Frank!Framework-adapter in the same Frank!Framework instance. If the callee exits with an &lt;<code>exit</code>&gt; + 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> + The IbisLocalSender is now considered to be legacy. The new way to call another adapter from your own + adapter is by using the FrankSender. + </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 org.frankframework.receivers.Receiver with either a WebServiceListener + or a JavaListener. + </p> + + + <h3>Configuration of the Adapter to be called</h3> + A call to another Adapter in the same Frank!Framework 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 Frank!Framework-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.9 + + + + + + + + + + + + Implementation of sender that sends an IDoc to SAP. + N.B. The sending of the iDoc is committed right after the XA transaction is completed. + + + + + + + + + + + + + + + + + + + + + Sender 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]</code>. + </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: + <pre><code>&lt;sender + className=&quot;org.frankframework.ldap.LdapSender&quot; + ldapProviderURL=&quot;ldap://servername:389/o=ing&quot; + operation=&quot;read&quot; + attributesToReturn=&quot;givenName,sn,telephoneNumber&quot; &gt; + &lt;param name=&quot;entryName&quot; xpathExpression=&quot;entryName&quot; /&gt; + &lt;/sender&gt;</code></pre> + <br/> + + This may result in the following output: + <pre><code>&lt;ldap&gt; + &lt;entryName&gt;uid=srp,ou=people&lt;/entryName&gt; + &lt;attributes&gt; + &lt;attribute attrID=&quot;givenName&quot;&gt; + &lt;value&gt;Jan&lt;/value&gt; + &lt;/attribute&gt; + &lt;attribute attrID=&quot;telephoneNumber&quot;&gt; + &lt;value&gt;010 5131123&lt;/value&gt; + &lt;value&gt;06 23456064&lt;/value&gt; + &lt;/attribute&gt; + &lt;attribute attrID=&quot;sn&quot;&gt; + &lt;value&gt;Jansen&lt;/value&gt; + &lt;/attribute&gt; + &lt;/attributes&gt; + &lt;/ldap&gt;</code></pre> + <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/> + <pre><code>&lt;attributes&gt; + &lt;attribute&gt; + &lt;attribute name=&quot;employeeType&quot; value=&quot;Extern&quot;/&gt; + &lt;attribute name=&quot;roomNumber&quot; value=&quot;DP 2.13.025&quot;/&gt; + &lt;attribute name=&quot;departmentCode&quot; value=&quot;358000&quot;/&gt; + &lt;attribute name=&quot;organizationalHierarchy&quot;&gt; + &lt;item value=&quot;ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; + &lt;item value=&quot;ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; + &lt;item value=&quot;ou=000001,ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; + &lt;/attribute&gt; + &lt;attribute name=&quot;givenName&quot; value=&quot;Gerrit&quot;/&gt; + &lt;/attributes&gt;</code></pre> + <br/> + Sample result of a <code>search</code> operation:<br/> + <pre><code>&lt;entries&gt; + &lt;entry name=&quot;uid=srp&quot;&gt; + &lt;attributes&gt; + &lt;attribute&gt; + &lt;attribute name=&quot;employeeType&quot; value=&quot;Extern&quot;/&gt; + &lt;attribute name=&quot;roomNumber&quot; value=&quot;DP 2.13.025&quot;/&gt; + &lt;attribute name=&quot;departmentCode&quot; value=&quot;358000&quot;/&gt; + &lt;attribute name=&quot;organizationalHierarchy&quot;&gt; + &lt;item value=&quot;ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; + &lt;item value=&quot;ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; + &lt;item value=&quot;ou=000001,ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; + &lt;/attribute&gt; + &lt;attribute name=&quot;givenName&quot; value=&quot;Gerrit&quot;/&gt; + &lt;/attributes&gt; + &lt;/entry&gt; + &lt;entry&gt; .... &lt;/entry&gt; + ..... + &lt;/entries&gt;</code></pre> + <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 + <code>FileAttribute.</code>. + 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: + <pre><code>&lt;email&gt; + &lt;recipients&gt; + &lt;recipient type=&quot;to&quot;&gt;***@hotmail.com&lt;/recipient&gt; + &lt;recipient type=&quot;cc&quot;&gt;***@gmail.com&lt;/recipient&gt; + &lt;/recipients&gt; + &lt;from name=&quot;*** ***&quot;&gt;***@yahoo.com&lt;/from&gt; + &lt;subject&gt;This is the subject&lt;/subject&gt; + &lt;threadTopic&gt;subject&lt;/threadTopic&gt; + &lt;message&gt;This is the message&lt;/message&gt; + &lt;messageType&gt;text/plain&lt;/messageType&gt;&lt;!-- Optional --&gt; + &lt;messageBase64&gt;false&lt;/messageBase64&gt;&lt;!-- Optional --&gt; + &lt;charset&gt;UTF-8&lt;/charset&gt;&lt;!-- Optional --&gt; + &lt;attachments&gt; + &lt;attachment name=&quot;filename1.txt&quot;&gt;This is the first attachment&lt;/attachment&gt; + &lt;attachment name=&quot;filename2.pdf&quot; base64=&quot;true&quot;&gt;JVBERi0xLjQKCjIgMCBvYmoKPDwvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1...vSW5mbyA5IDAgUgo+PgpzdGFydHhyZWYKMzQxNDY2CiUlRU9GCg==&lt;/attachment&gt; + &lt;attachment name=&quot;filename3.pdf&quot; url=&quot;file:/c:/filename3.pdf&quot;/&gt; + &lt;attachment name=&quot;filename4.pdf&quot; sessionKey=&quot;fileContent&quot;/&gt; + &lt;/attachments&gt;&lt;!-- Optional --&gt; + &lt;/email&gt;</code></pre> + </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: + <pre><code>&lt;message&gt;&lt;![CDATA[&lt;h1&gt;This is a HtmlMessage&lt;/h1&gt;]]&gt;&lt;/message&gt;</code></pre> + </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: + <pre><code>&lt;SenderPipe name=&quot;Send&quot;&gt; + &lt;MessageStoreSender + slotId=&quot;${instance.name}/TestMessageStore&quot; + onlyStoreWhenMessageIdUnique=&quot;false&quot; /&gt; + &lt;/SenderPipe&gt;</code></pre> + + + + + + + + + + + + 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 AbstractHttpSender for more arguments and parameters!</p> + + + <p><b>AuthAlias:</b></p> + <p>If you do not want to specify the nonce and the access token used to authenticate with Akamai, you can use the authalias property. The username + represents the nonce and the password the access token.</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>&lt;SenderPipe&gt; + &lt;ReconnectSenderWrapper&gt; + &lt;EchoSender myAttribute=&quot;myValue&quot; /&gt; + &lt;/ReconnectSenderWrapper&gt; + &lt;/SenderPipe&gt;</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.<br><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</p> + + + + + + + + + + + + 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. + + + + + + + + + + + + Implementation of sender that calls a SAP RFC-function. + + N.B. If no requestFieldIndex or requestFieldName is specified, input is converted from xml; + If no replyFieldIndex or replyFieldName is specified, output is converted to xml. + - - - - - - - - - - - + + + + + - - - - - - + - Extension to SoapWrapperPipe for API Management. + 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.xml + + + + + + + + + + + + Series 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> - <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>&nbsp;</td><td>&nbsp;</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>&nbsp;</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> + <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>?</code>, should + have a corresponding IParameter entry. Output parameters should have <code>mode=&quot;OUTPUT&quot;</code>, or + <code>mode=&quot;INOUT&quot;</code> 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> + <pre><code>&lt;resultset&gt; + &lt;result param=&quot;r1&quot; type=&quot;STRING&quot;&gt;MESSAGE-CONTENTS&lt;/result&gt; + &lt;result param=&quot;r2&quot; type=&quot;STRING&quot;&gt;E&lt;/result&gt; + &lt;/resultset&gt;</code></pre> + + <h4>Example with Resultset and Simple Output Parameters</h4> + <pre><code>&lt;resultset&gt; + &lt;result resultNr=&quot;1&quot;&gt; + &lt;fielddefinition&gt; + &lt;field name=&quot;FIELDNAME&quot; + type=&quot;columnType&quot; + columnDisplaySize=&quot;&quot; + precision=&quot;&quot; + scale=&quot;&quot; + isCurrency=&quot;&quot; + columnTypeName=&quot;&quot; + columnClassName=&quot;&quot;/&gt; + &lt;field ...../&gt; + &lt;/fielddefinition&gt; + &lt;rowset&gt; + &lt;row number=&quot;0&quot;&gt; + &lt;field name=&quot;TKEY&quot;&gt;MSG-ID&lt;/field&gt; + &lt;field name=&quot;TCHAR&quot;&gt;E&lt;/field&gt; + &lt;field name=&quot;TMESSAGE&quot;&gt;MESSAGE-CONTENTS&lt;/field&gt; + &lt;field name=&quot;TCLOB&quot; null=&quot;true&quot;/&gt; + &lt;field name=&quot;TBLOB&quot; null=&quot;true&quot;/&gt; + &lt;/row&gt; + &lt;row number=&quot;1&quot; ...../&gt; + &lt;/rowset&gt; + &lt;/result&gt; + &lt;result param=&quot;count&quot; type=&quot;INTEGER&quot;&gt;5&lt;/result&gt; + &lt;/resultset&gt;</code></pre> + + <h4>Example with Simple and Cursor Output Parameters</h4> + <pre><code>&lt;resultset&gt; + &lt;result param=&quot;count&quot; type=&quot;INTEGER&quot;&gt;5&lt;/result&gt; + &lt;result param=&quot;cursor1&quot; type=&quot;LIST&quot;&gt; + &lt;fielddefinition&gt; + &lt;field name=&quot;FIELDNAME&quot; + type=&quot;columnType&quot; + columnDisplaySize=&quot;&quot; + precision=&quot;&quot; + scale=&quot;&quot; + isCurrency=&quot;&quot; + columnTypeName=&quot;&quot; + columnClassName=&quot;&quot;/&gt; + &lt;field ...../&gt; + &lt;/fielddefinition&gt; + &lt;rowset&gt; + &lt;row number=&quot;0&quot;&gt; + &lt;field name=&quot;TKEY&quot;&gt;MSG-ID&lt;/field&gt; + &lt;field name=&quot;TCHAR&quot;&gt;E&lt;/field&gt; + &lt;field name=&quot;TMESSAGE&quot;&gt;MESSAGE-CONTENTS&lt;/field&gt; + &lt;field name=&quot;TCLOB&quot; null=&quot;true&quot;/&gt; + &lt;field name=&quot;TBLOB&quot; null=&quot;true&quot;/&gt; + &lt;/row&gt; + &lt;row number=&quot;1&quot; ..... /&gt; + &lt;/rowset&gt; + &lt;/result&gt; + &lt;/resultset&gt;</code></pre> + </p><br><br><b>INFO</b><p>Support for stored procedures is currently experimental and changes in the currently produced output-format are expected.</p><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</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. - - + + - + - Extension to SoapWrapperPipe for separate modes. + Sender for browsing and removing queue messages (with input and output in a XML message). - <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>&nbsp;</td></tr> - <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> - <tr><td>From</td><td>1</td><td>&nbsp;</td></tr> - <tr><td>Id</td><td>2</td><td>$fromId</td></tr> - <tr><td>To</td><td>1</td><td>&nbsp;</td></tr> - <tr><td>Location</td><td>2</td><td>if $messagingLayer='P2P' then<br/>&nbsp;$messagingLayer.$businessDomain.$applicationName.$applicationFunction.$paradigm<br/>else if $serviceContext is not empty then<br/>&nbsp;$messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceContext.$serviceContextVersion.$operationName.$operationVersion.$paradigm<br/>else<br/>&nbsp;$messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceVersion.$operationName.$operationVersion.$paradigm</td></tr> - <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</td></tr> - <tr><td>serviceName</td><td>&nbsp;</td></tr> - <tr><td>serviceContext</td><td>&nbsp;</td></tr> - <tr><td>service(Context)Version</td><td>1</td></tr> - <tr><td>operationName</td><td>&nbsp;</td></tr> - <tr><td>operationVersion</td><td>1</td></tr> - <tr><td>paradigm</td><td>&nbsp;</td></tr> - <tr><td>applicationName</td><td>&nbsp;</td></tr> - <tr><td>applicationFunction</td><td>&nbsp;</td></tr> - <tr><td>messagingLayer</td><td>ESB</td></tr> - <tr><td>serviceLayer</td><td>&nbsp;</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> + When input root element is <code>browse</code> all queue messages are returned. </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>&nbsp;</td></tr> - <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> - <tr><td>From</td><td>1</td><td>&nbsp;</td></tr> - <tr><td>Id</td><td>2</td><td>$fromId</td></tr> - <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</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> + When input root element is <code>remove</code> all queue messages are removed. </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>&nbsp;</td><td>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</td></tr> - <tr><td>errorReason</td><td>&nbsp;</td></tr> - <tr><td>errorDetailCode</td><td>&nbsp;</td></tr> - <tr><td>errorDetailText</td><td>&nbsp;</td></tr> - <tr><td>serviceName</td><td>&nbsp;</td></tr> - <tr><td>serviceContext</td><td>&nbsp;</td></tr> - <tr><td>operationName</td><td>&nbsp;</td></tr> - <tr><td>operationVersion</td><td>1</td></tr> - <tr><td>paradigm</td><td>&nbsp;</td></tr> - <tr><td>fixResultNamespace</td><td>false</td></tr> - </table> + <b>example (input):</b> + <pre><code>&lt;browse&gt; + &lt;jmsRealm&gt;qcf&lt;/jmsRealm&gt; + &lt;destinationName&gt;jms/GetPolicyDetailsRequest&lt;/destinationName&gt; + &lt;destinationType&gt;QUEUE&lt;/destinationType&gt; + &lt;/browse&gt;</code></pre> </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>&nbsp;</td><td>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</td></tr> - <tr><td>errorReason</td><td>&nbsp;</td></tr> - <tr><td>errorDetailCode</td><td>&nbsp;</td></tr> - <tr><td>errorDetailText</td><td>&nbsp;</td></tr> - <tr><td>serviceName</td><td>&nbsp;</td></tr> - <tr><td>serviceContext</td><td>&nbsp;</td></tr> - <tr><td>operationName</td><td>&nbsp;</td></tr> - <tr><td>operationVersion</td><td>1</td></tr> - <tr><td>paradigm</td><td>&nbsp;</td></tr> - </table> - </p> + <b>example (browse output):</b> + <pre><code>&lt;result&gt; + &lt;items count=&quot;2&quot;&gt; + &lt;item&gt; + &lt;timestamp&gt;Thu Nov 20 13:36:31 CET 2014&lt;/timestamp&gt; + &lt;messageId&gt;ID:LPAB00000003980-61959-1416486781822-3:5:33:1:1&lt;/messageId&gt; + &lt;correlationId&gt;...&lt;/correlationId&gt; + &lt;message&gt;&lt;![CDATA[...]]&gt;&lt;/message&gt; + &lt;/item&gt; + &lt;item&gt; + &lt;timestamp&gt;Thu Dec 12 11:59:22 CET 2014&lt;/timestamp&gt; + &lt;messageId&gt;ID:LPAB00000003980-58359-1721486799722-3:4:19:1:1&lt;/messageId&gt; + &lt;correlationId&gt;...&lt;/correlationId&gt; + &lt;message&gt;&lt;![CDATA[...]]&gt;&lt;/message&gt; + &lt;/item&gt; + &lt;/items&gt; + &lt;/result&gt;</code></pre> + </p> + + <p> + <b>example (remove output):</b> + <pre><code>&lt;result&gt; + &lt;itemsRemoved&gt;2&lt;/itemsRemoved&gt; + &lt;/result&gt;</code></pre> + + + + + + + + + + + + QuerySender that transforms the input message to a query. + <br/> + <pre><code>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] + + alter - sequenceName + - startWith + + sql - type [0..1] one of {select;ddl;other}, other by default + - query</code></pre> + <br/><br><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</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}). + 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. - - + + - + - Pipe to wrap or unwrap a message from/into a SOAP Envelope. + 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 account + + + + + Secret key to access to the AWS resources owned by the account + + + + + Alias used to obtain AWS credentials + + + + + Setting this flag will result in disabling chunked encoding for all requests. Default: false + + + + + Option to enable or disable the usage of multi-region access point ARNs. Default: false + + + + + Name of the AWS region that the client is using. Default: eu-west-1 + + + + + Name of the bucket to access. The bucketName can also be specified by prefixing it to the object name, separated from it by <code>|</code> + + + + + Proxy host + + + + + Proxy port + + + + + The 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 S3 Default: 50 + + + + + + + + + + + + + + + + name of the sender + + + + + + + + + If parameter [<code>action</code>] 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 <code>filename</code> is used. If that is not set either, the input is used + + + + + Destination for <code>move</code>, <code>copy</code> or <code>rename</code>. If not set, the parameter <code>destination</code> is used. If that is not set either, the input is used + + + + + Folder that is scanned for files when action=<code>list</code>. When not set, the root is scanned + + + + + If <code>true</code>: if a non-existing folder is part of the fileName, it will be created. Default: false + + + + + If set <code>true</code>, for actions <code>create</code>, <code>write</code>, <code>move</code>, <code>copy</code> or <code>rename</code>, the destination file is overwritten if it already exists Default: false + + + + + For action=<code>append</code>: 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: 0 + + + + + For action=<code>append</code>: 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: 0 + + + + + For the actions <code>write</code> and <code>append</code>, with rotateSize>0: the number of backup files that is kept. The inputFolder must point to the directory where the file resides Default: 0 + + + + + Filter of files to look for in inputFolder e.g. '*.inp'. Works with actions <code>move</code>, <code>copy</code>, <code>delete</code> and <code>list</code> + + + + + Filter of files to be excluded when looking in inputFolder. Works with actions <code>move</code>, <code>copy</code>, <code>delete</code> and <code>list</code> + + + + + If 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 <code>write</code> and <code>append</code> Default: false + + + + + Charset to be used for <code>read</code> and <code>write</code> action + + + + + If set to true then the folder will be deleted if it is empty after processing the action. Works with actions <code>delete</code>, <code>readDelete</code> and <code>move</code> + + + + + Sets the outputFormat. This ignored when reading a file. Is applicable to actions which return information about file(s). Relevant for: + 'info', 'list', 'append', 'move', 'delete' and 'copy' actions. Default: XML + + + + + + + + Filter for action <code>list</code>. Specify <code>FILES_ONLY</code>, <code>FOLDERS_ONLY</code> or <code>FILES_AND_FOLDERS</code>. Default: FILES_ONLY + + + + + + + + + + + + + + + + + + + Specifies action to perform + + + + + + + + The maximum number of concurrent connections Default: 10 + + + + + READ_TIMEOUT timeout in MS. + Defaults to 10000, inherited from HttpSender#setTimeout. Default: 10000 + + + + + URL to connect to + + + + + Repository ID + + + + + Alias used to obtain credentials for authentication to host + + + + + Username used in authentication to host + + + + + Password used in authentication to host + + + + + BindingType CMIS protocol to use + + + + + + + + If <code>action=create</code> the sessionKey that contains the file to use. If <code>action=get</code> and <code>getProperties=true</code> the sessionKey to store the result in + + + + + If <code>action=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 used + + + + + If <code>action=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=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=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=create</code>). If true, the document is created in the root folder of the repository. Otherwise the document is created in the repository Default: true + + + + + If true, the session is not closed at the end and it will be used in the next call Default: true + + + + + Override entrypoint WSDL by reading it from the classpath, overrides url attribute + + + + + Resource url to keystore or certificate. If none specified, the JVMs default keystore will be used. + + + + + Type of keystore Default: pkcs12 + + + + + + + + Authentication alias used to obtain keystore password + + + + + Default password to access keystore + + + + + Alias to obtain specific certificate or key in keystore + + + + + Authentication 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 algorithm + + + + + Resource url to truststore. If none specified, the JVMs default truststore will be used. + + + + + Type of truststore Default: jks + + + + + + + + Authentication alias used to obtain truststore password + + + + + Default password to access truststore + + + + + Trust manager algorithm. Can be left empty to use the servers default algorithm + + + + + If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer. Note: This attribute is unsafe and should not be used in a production environment. Default: false + + + + + If <code>true</code>, self signed certificates are accepted. Note: This attribute is unsafe and should not be used in a production environment. Default: false + + + + + If <code>true</code>, CertificateExpiredExceptions are ignored. Note: This attribute is unsafe and should not be used in a production environment. Default: false + + + + + Proxy host url + + + + + Proxy host port Default: 80 + + + + + Alias used to obtain credentials for authentication to proxy + + + + + Proxy Username + + + + + Proxy Password + + + + + + + + + + + + + + + + The command to be executed. Note: Executing a command in WAS requires &lt;&lt;ALL FILES&gt;&gt; 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: 0 + + + + + In case the command that will be executed contains arguments then this flag should be set to true Default: false + + + + + + + + + + + + + + + The 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: 0 + + + + + + + + + + + + Type of query to be executed Default: OTHER + + + + + + + + + + The maximum number of rows to be returned from the output of <code>select</code> queries, -1 means unlimited rows Default: -1 + + + + + The 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: 1 + + + + + + + Comma 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 dialect + + + + + When 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: false + + + + + when set and >=0, ' FOR UPDATE WAIT #' is used instead of ' FOR UPDATE NOWAIT SKIP LOCKED' Default: -1 + + + + + + Only for querytype 'updateBlob': column that contains the BLOB to be updated Default: 1 + + + + + For 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 to + + + + + controls whether blobdata is stored compressed in the database Default: true + + + + + controls 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 case + + + + + Controls automatically whether blobdata is stored compressed and/or serialized in the database Default: false + + + + + Only for querytype 'updateClob': column that contains the CLOB to be updated Default: 1 + + + + + For 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 to + + + + + + + If 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: false + + + + + + + + + + + + + + + + + + hack to allow to introduce a correlationid Default: true + + + + + + + + + + + + + + + + The 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 autodiscovery + + + + + Client 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 Secrets + + + + + Tenant 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 used + + + + + If empty, all mails are retrieved. If set to <code>NDR</code> only Non-Delivery Report mails ('bounces') are retrieved + + + + + Comma separated list of fields to try as response address Default: <code>replyTo,from,sender,Return-Path</code> + + + + + proxy host + + + + + proxy port Default: 8080 + + + + + proxy username + + + + + proxy password + + + + + proxy authAlias + + + + + proxy domain + + + + + Separator character used when working with multiple mailboxes, specified before the separator in the object name <code>test@organisation.com|My sub folder</code> or <code>test@organisation.com|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: pkcs12 + + + + + + + + Authentication alias used to obtain keystore password + + + + + Default password to access keystore + + + + + Key manager algorithm. Can be left empty to use the servers default algorithm + + + + + Alias to obtain specific certificate or key in keystore + + + + + Authentication 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: jks + + + + + + + + Authentication alias used to obtain truststore password + + + + + Default password to access truststore + + + + + Trust manager algorithm. Can be left empty to use the servers default algorithm + + + + + If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer Default: false + + + + + If <code>true</code>, self signed certificates are accepted Default: false + + + + + If <code>true</code>, CertificateExpiredExceptions are ignored Default: false + + + + + + + + + + + + + + + + + + + + + The SQL query text to be executed each time sendMessage() is called + + + + + + + + + + + + + + + + + should values between ${ and } be resolved from the pipelinesession Default: false + + + + + Name of the file containing the result message + + + + + returned message + + + + + + + + + + + + + + + + + + + Synchronous or Asynchronous execution of the call to other adapter or system. + <br/> + Set to <code>false</code> to make the call asynchronously. This means that the current adapter + continues with the next pipeline and the result of the sub-adapter that was called, or other system that was called, + is ignored. Instead, the input message will be returned as the result message. Default: true + + + + + Scope decides if the FrankSender calls another adapter, or another Java program running in the same JVM. + <br/> + It is possible to set this via a parameter. If the parameter is defined but the value at runtime + is empty, then the value set via this attribute will be used as default. Default: ADAPTER + + + + + + + + Target: service-name of service in other application that should be called, or name of adapter to be called. + If the adapter is in another configuration, prefix the adapter name with the name of that configuration and a slash ("<code>/</code>"). + <br/> + It is possible to set a target at runtime via a parameter. + <br/> + If a parameter with name <code>target</code> exists but has no value, then the target configured + via the attribute will be used as a default. + + + + + 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. + + + + + + + + + + + + + + + + pathname of the file or directory to list. Default: Home folder of the ftp user + + + + + Name or ip address of remote host + + + + + Port number of remote host Default: 21 + + + + + Name of the alias to obtain credentials to authenticatie on remote server + + + + + Name of the user to authenticatie on remote server + + + + + Password to authenticatie on remote server + + + + + Proxy hostname + + + + + Proxy port Default: 1080 + + + + + FTP protocol to use Default: FTP + + + + + + + + + + + + + If <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 Default: false + + + + + (ftps) If <code>true</code>, self signed certificates are accepted Default: false + + + + + (ftps) If <code>true</code>, CertificateExpiredExceptions are ignored Default: false + + + + + Sets the <code>Data Channel Protection Level</code>. Default: C + + + + + + + + + + + + + + + + + + + If <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=POST</code> and <code>postType=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 content + + + + + If set and <code>methodType=POST</code> and <code>paramsInUrl=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: false + + + + + If <code>true</code>, the input will be added to the URL for <code>methodType=GET</code>, or for <code>methodType=POST</code>, <code>PUT</code> or + <code>PATCH</code> if <code>postType=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 response + + + + + + + The functional name of the object. + + + + + + + + Timeout in ms of obtaining a connection/result. Default: 10000 + + + + + + + Authentication alias used for authentication to the host + + + + + Username used for authentication to the host + + + + + Password used for authentication to the host + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Timeout in ms of obtaining a connection/result. Default: 10000 + + + + + + + Authentication alias used for authentication to the host + + + + + Username used for authentication to the host + + + + + Password used for authentication to the host + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ServiceName 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 classpath + + + + + + + + + + + + + + + + Name 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 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. + + + + + If set <code>false</code>, the call is made asynchronously. This implies <code>isolated=true</code> Default: true + + + + + If <code>true</code>, the call is made in a separate thread, possibly using separate transaction Default: false + + + + + If <code>true</code>, the sender waits upon open until the called JavaListener is opened Default: true + + + + + Maximum time (in seconds) the sender waits for the listener to start. A value of -1 indicates to wait indefinitely Default: 60 + + + + + If set <code>false</code>, the xml-string \"&lt;error&gt;could not find JavaListener [...]&lt;/error&gt;\" is returned instead of throwing a senderexception Default: true + + + + + + + + + + + + + + + + + + + + + This 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 certificates + + + + + The password used to access the keystore + + + + + The AuthAlias used to access the keystore + + + + + This 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 .pfx + + + + + In case the merchant certificate has been password protected + + + + + In case the merchant certificate has been password protected + + + + + 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 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 protected + + + + + In case the SAML certificate has been password protected + + + + + + + + + + + Load 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 functions + + + + + Name of the parameter used to indicate the name of the SapSystem used by this object if the attribute <code>sapSystemName</code> is empty Default: sapSystemName + + + + + + + + + + + + + + + + The hostname of the IMAP server + + + + + The port of the IMAP server Default: 993 + + + + + Alias 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 used + + + + + Comma separated list of fields to try as response address Default: <code>replyTo,from,sender,Return-Path</code> + + + + + + + + + + + + + + + + + + + + + + + + + + + the name of the javascript file containing the functions to run + + + + + the name of the javascript function that will be called (first) Default: main + + + + + the name of the JavaScript engine to use. Default: J2V8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + If set, input is taken from this session key, instead of regular input + + + + + If set, this fixed value is taken as input, instead of regular input + + + + + If set <code>true</code>, the input of a pipe is restored before processing the next one Default: false + + + + + If set, the result is stored under this session key + + + + + If set, the input is stored under this session key + + + + + + + + + + + + + + + + When <code>true</code>, the xml result of the transformation is converted back to json Default: true + + + + + Namespace 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/json + + + + + + + + If 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.default + + + + + Location of stylesheet to apply to the input message + + + + + Session key to retrieve stylesheet location. Overrides stylesheetName or xpathExpression attribute + + + + + Size of cache of stylesheets retrieved from styleSheetNameSessionKey Default: 100 + + + + + Alternatively: XPath-expression to create stylesheet from + + + + + Omit 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 stylesheet + + + + + If 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 stylesheet + + + + + For xpathExpression only Default: text + + + + + + + + If 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 stylesheet + + + + + If set <code>true</code> namespaces (and prefixes) in the input message are removed before transformation Default: false + + + + + If 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: false + + + + + If set <code>true</code> empty tags in the output are removed after transformation Default: false + + + + + 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: 0 + + + + + + + + + + + + + + If 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.default + + + + + Location of stylesheet to apply to the input message + + + + + Session key to retrieve stylesheet location. Overrides stylesheetName or xpathExpression attribute + + + + + Size of cache of stylesheets retrieved from styleSheetNameSessionKey Default: 100 + + + + + Alternatively: XPath-expression to create stylesheet from + + + + + Omit 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 stylesheet + + + + + If 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 stylesheet + + + + + Namespace 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 namespace + + + + + For xpathExpression only Default: text + + + + + + + + If 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 stylesheet + + + + + If set <code>true</code> namespaces (and prefixes) in the input message are removed before transformation Default: false + + + + + If 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: false + + + + + If set <code>true</code> empty tags in the output are removed after transformation Default: false + + + + + 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: 0 + + + + + + + + + + + + + + + + + + + + + + Specifies LDAP operation to perform Default: read + + + + + + + + URL 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: attribute + + + + + + + + Comma 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 otherwise + + + + + Specifies the time (in ms) that is spent searching for results for operation search Default: 20000 + + + + + Key of session variable used to store cause of errors Default: errorReason + + + + + The maximum number of entries to be returned by a search query, or <code>0</code> for unlimited Default: 0 + + + + + When <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 '&lt;ldapresult&gt;object not found&lt;/ldapresult&gt;' is returned instead of the PartialResultException 'unprocessed continuation reference(s)' Default: false + + + + + + + + + + + + + + + + Path 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 used + + + + + Whether the LocalFileSystem tries to create the root folder if it doesn't exist yet. Default: false + + + + + + + + + + + + + + + + category under which messages are logged Default: name of the sender + + + + + level on which messages are logged Default: info + + + + + + + + + + + + + + + + Name of the SMTP-host by which the messages are to be send + + + + + Port of the SMTP-host by which the messages are to be send Default: 25 + + + + + When set to true, we ensure TLS is being used Default: false + + + + + + + + + + + authAlias used to obtain credentials for authentication + + + + + + password of userid + + + + + + + Timeout <i>in milliseconds</i> for socket connection timeout and socket i/o timeouts Default: 20000 + + + + + + + + + + + + + + + + + + + + + + + + + + Comma 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: true + + + + + + + + + + + + + + + + The MongoDB datasource Default: <code>mongodb.datasource.default</code> + + + + + Database to connect to. Can be overridden by parameter <code>database</code> + + + + + Collection to act upon. Can be overridden by parameter <code>collection</code> + + + + + Action + + + + + + + + Filter. Can contain references to parameters between <code>?{</code> and <code>}</code>. Can be overridden by parameter <code>filter</code> + + + + + Limit to number of results returned. A value of 0 means 'no limit'. Can be overridden by parameter <code>limit</code>. Default: 0 + + + + + Only for find operation: return only the count and not the full document(s) Default: false + + + + + OutputFormat Default: JSON + + + + + + + + Format 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 used + + + + + + + + At the time of writing, NetStorage only supports version 1 Default: 1 + + + + + NetStorage CP Code of the storage group + + + + + The destination URL for the Akamai NetStorage. (Only the hostname, without CpCode; eq. xyz-nsu.akamaihd.net) + + + + + Login is done via a Nonce and AccessToken + + + + + Version to validate queries made to NetStorage backend. Default: 5 + + + + + Login is done via a Nonce and AccessToken + + + + + Root 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 response + + + + + + + The functional name of the object. + + + + + Timeout in ms of obtaining a connection/result. Default: 10000 + + + + + + + Username used for authentication to the host + + + + + Password used for authentication to the host + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + Set the upper limit to the amount of concurrent threads that can be run simultaneously. Use 0 to disable. Default: 0 + + + + + + + + + + + + + + + + - - - - - 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> - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + reload the configuration regardless of the version Default: false + + + + + + + + + + + + + + + + type of the optional status field which is set after the row is written to the file: timestamp + + + + + Key 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: false + + + + + If set (and &gt;=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 processed + + + + + + + + + + + + + + + + The destination, aka smb://xxx/yyy share + + + + + The SMB share username + + + + + The SMB share password + + + + + Alias used to obtain credentials for the SMB share + + + + + logon/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: false + + + + + controls whether hidden files are seen or not Default: false + + + + + + + + + + + + + + + + Hostname of the SMB share. + + + + + Port to connect to. Default: 445 + + + + + Type 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: SPNEGO + + + + + + + + alias used to obtain credentials for the smb share + + + + + the smb share username + + + + + the smb share password + + + + + NTLM 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: false + + + + + Name of the RFC-function to be called in the SAP system + + + + + Name of the parameter used to obtain the functionName from if the attribute <code>functionName</code> is empty Default: functionName + + + + + + + + + + + + + + + + Timeout in ms of obtaining a connection/result. Default: 10000 + + + + + The maximum number of concurrent connections Default: 10 + + + + + The maximum number of times the execution is retried Default: 1 (for repeatable messages) else 0 + + + + + Proxy host + + + + + Proxy port Default: 80 + + + + + Alias used to obtain credentials for authentication to proxy + + + + + Proxy username + + + + + Proxy password + + + + + Proxy realm + + + + + resource URL to keystore or certificate to be used for authentication. If none specified, the JVMs default keystore will be used. + + + + + Type of keystore Default: pkcs12 + + + + + + + + Authentication alias used to obtain keystore password + + + + + Default password to access keystore + + + + + Alias to obtain specific certificate or key in keystore + + + + + Authentication 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 algorithm + + + + + Resource URL to truststore to be used for authenticating peer. If none specified, the JVMs default truststore will be used. + + + + + Type of truststore Default: jks + + + + + + + + Authentication alias used to obtain truststore password + + + + + Default password to access truststore + + + + + Trust manager algorithm. Can be left empty to use the servers default algorithm + + + + + If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer Default: false + + + + + If <code>true</code>, self signed certificates are accepted Default: false + + + + + If <code>true</code>, CertificateExpiredExceptions are ignored Default: false + + + + + If <code>true</code>, a redirect request will be honoured, e.g. to switch to HTTPS Default: true + + + + + Controls whether connections checked to be stale, i.e. appear open, but are not. Default: true + + + + + Used when <code>staleChecking</code> is <code>true</code>. Timeout after which an idle connection will be validated before being used. Default: 5000 ms + + + + + Secure socket protocol (such as 'TLSv1.2') to use when a SSLContext object is generated. Default: TLSv1.2 + + + + + + + + authAlias used to obtain credentials for authentication + + + + + + password of userid + + + + + + + + + + + + + + + + + + + + - - - - - Manager that decides the handlers based on the content of a field in the specified - position in a record. The fields in the record are separated by a separator. - The value of the specified field is taken as key in the flow-table. - - - - - - - - - - - - Manager that decides the handlers based on the content of a field in the specified - position in a record. The fields in the record are of a fixed length. - The data beween the start position and end position is taken as key in the flow-table. - - - - - - - - - - + + + + + - - - - + + + + + + + + + Path of the file or directory to start working. Default: Home folder of the sftp user + + + + + Name or ip address of remote host + + + + + Port number of remote host Default: 21 + + + + + Name of the alias to obtain credentials to authenticatie on remote server + + + + + Name of the user to authenticatie on remote server + + + + + Password to authenticatie on remote server + + + + + Proxy hostname + + + + + Proxy port Default: 1080 + + + + + alias to obtain credentials to authenticate on proxy + + + + + Default user name in case proxy requires authentication + + + + + Default password in case proxy requires authentication + + + + + Transport type in case of sftp Default: SOCKS5 + + + + + + + + Optional preferred encryption from client to server for sftp protocol + + + + + Optional preferred encryption from server to client for sftp protocol + + + + + Path to private key file for sftp authentication + + + + + Name of the alias to obtain credentials for passphrase of private key file + + + + + Passphrase of private key file + + + + + Path to file with knownhosts + + + + + Verify the hosts againt the knownhosts file. Default: true + + + + + + + + + + + + + + + + Name of the sender that is considered that is considered to be the golden standard, i.e. the source of truth. Default: the first sender specified + + + + + The sender name which will process the results Default: the last sender specified + + + + + If 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: false + + + + + + + + + + + + + + + + A 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 AbstractJdbcQuerySender.QueryType#SELECT and AbstractJdbcQuerySender.QueryType#OTHER. + Use AbstractJdbcQuerySender.QueryType#SELECT when your stored procedure returns a row set (not supported by Oracle and PostgreSQL). + Use AbstractJdbcQuerySender.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: OTHER + + + + + + + + + + + + + + + + + + + + If set, the SQL dialect in which the queries are written and should be translated from to the actual SQL dialect + + + + + + + + + + + + + + + + + + when <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: true + + + + + the soapactionuri to be set in the requestheader + + + + + parameter to obtain the soapactionuri + + + + + the encodingstyle to be set in the messageheader + + + + + controls whether soap faults generated by the application generate an exception, or are treated as 'normal' messages Default: true + + + + + 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 + + + + + parameter to obtain the servicenamespace + + + + + namespace 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>-definitions + + + + + username used to obtain credentials for authentication to web services security + + + + + password used to obtain credentials for authentication to web services security + + + + + alias used to obtain credentials for authentication to web services security + + + + + when 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 response + + + + + + + The functional name of the object. + + + + + Timeout in ms of obtaining a connection/result. Default: 10000 + + + + + + + Authentication alias used for authentication to the host + + + + + Username used for authentication to the host + + + + + Password used for authentication to the host + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - position of field that identifies the recordtype (position of first field is 1) + one of create, append or replace + + + - + + + remote directory is prefixed witht the remote file + + + + + + + + + + characterset conversion + + + + + + + + + + + + + name of logfile for xcomtcp to be used + + + + + password of user on remote system + + + + + port of remote host + + + + + set queue off or on + + + + + hostname or tcpip adres of remote host + + + + + set between 0 (no trace) and 10 + + + + + set truncation off or on + + + + + loginname of user on remote system + + + + + remote file to create. if empty, the name is equal to the local file + + + + + directory in which to run the xcomtcp command + + + + + path to xcomtcp command + + + + + + name of the alias to obtain credentials to authenticatie on remote server + + + + + + + + + + + + + + + + Full pathname to the XFB script to be executed to transfer the file + + + + + + + + + When 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: false + + + + + If set: key of session variable to store reasons of mis-validation in Default: failureReason + + + + + Like <code>reasonSessionKey</code> but stores reasons in xml format and more extensive Default: xmlFailureReason + + + + + If 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: false + + + + + Characterset used for reading file, only used when <code>validateFile</code> is <code>true</code> Default: utf-8 + + + + + If 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 <code>XSD_VALIDATION_WARNINGS_SUPPRESS_KEY</code>, <code>XSD_VALIDATION_ERROR_SUPPRESS_KEY</code> and <code>XSD_VALIDATION_FATAL_ERROR_SUPPRESS_KEY</code> Default: true + + + - separator that separates the fields in the record + Ignore namespaces in the input message which are unknown Default: true when <code>schema</code> or <code>noNamespaceSchemaLocation</code> is used, false otherwise - - - - - - - - - - - - - - - - - + - Name of the manager + If set <code>true</code>, the number for caching validators in appConstants is ignored and no caching is done (for this validator only) Default: false - + - This manager is the initial manager, i.e. to be used for the first record Default: false + If 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> - - - - + + + + - - - - Start position of the field in the record that identifies the recordtype (first character is 0) Default: 0 - - - + + + + + + - If endposition &gt;= 0 then this field contains the endPosition of the recordtype field in the record; All characters beyond this position are ignored. Else, if endPosition &lt; 0 then it depends on the length of the recordkey in the flow Default: -1 + 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: collection - - - + + + - - - - - - - - - - - - - - - - - - Basic InputStreamReaderFactory. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -12747,7 +11438,7 @@ - + @@ -12817,7 +11508,7 @@ - + @@ -13051,7 +11742,7 @@ - + @@ -13777,8 +12468,8 @@ Pipe that throws an exception, based on the input message. - - `success` forward is used when `throwException` is false, `exception` is used otherwise. + <br/> + The `success` forward is only used when the (deprecated) attribute `throwException` has been set to `false`, otherwise the (default) `exception` forward will be used.<br><br><b>WARNING</b><p>The attribute `throwException` has been deprecated and thus the `success` forward will be removed along with the `throwException` attribute.</p> @@ -13801,50 +12492,39 @@ <h3>For using a 'resultString'</h3> You can use the EchoPipe for a static value. This looked like this before: - <pre> - <code>&lt;pipe name=&quot;HelloWorld&quot; className=&quot;org.frankframework.pipes.FixedResult&quot; returnString=&quot;Hello World&quot;&gt; + <pre><code>&lt;pipe name=&quot;HelloWorld&quot; className=&quot;org.frankframework.pipes.FixedResult&quot; returnString=&quot;Hello World&quot;&gt; &lt;forward name=&quot;success&quot; path=&quot;EXIT&quot;/&gt; - &lt;/pipe&gt;</code> - </pre> + &lt;/pipe&gt;</code></pre> Becomes: - <pre> - <code>&lt;pipe name=&quot;HelloWorld&quot; className=&quot;org.frankframework.pipes.EchoPipe&quot; getInputFromFixedValue=&quot;Hello World&quot;&gt; + <pre><code>&lt;pipe name=&quot;HelloWorld&quot; className=&quot;org.frankframework.pipes.EchoPipe&quot; getInputFromFixedValue=&quot;Hello World&quot;&gt; &lt;forward name=&quot;success&quot; path=&quot;EXIT&quot;/&gt; - &lt;/pipe&gt;</code> - </pre> + &lt;/pipe&gt;</code></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>&lt;pipe name=&quot;make unique message&quot; className=&quot;org.frankframework.pipes.FixedResultPipe&quot; + <pre><code>&lt;pipe name=&quot;make unique message&quot; className=&quot;org.frankframework.pipes.FixedResultPipe&quot; returnString=&quot;&amp;lt;msg mid=&amp;quot;MID&amp;quot; action=&amp;quot;ACTION&amp;quot; /&amp;gt;&quot; replaceFixedParams=&quot;true&quot;&gt; &lt;param name=&quot;MID&quot; sessionKey=&quot;mid&quot; /&gt; &lt;param name=&quot;ACTION&quot; xpathExpression=&quot;request/@action&quot; /&gt; - &lt;/pipe&gt;</code> - </pre> + &lt;/pipe&gt;</code></pre> And can now be written like this (note the ?{..} syntax): - <pre> - <code>&lt;pipe name=&quot;make unique message&quot; className=&quot;org.frankframework.pipes.ReplacerPipe&quot; + <pre><code>&lt;pipe name=&quot;make unique message&quot; className=&quot;org.frankframework.pipes.ReplacerPipe&quot; getInputFromFixedValue=&quot;&amp;lt;msg mid=&amp;quot;?{MID}&amp;quot; action=&amp;quot;?{ACTION}&amp;quot; /&amp;gt;&quot;&gt; &lt;param name=&quot;MID&quot; sessionKey=&quot;mid&quot; /&gt; &lt;param name=&quot;ACTION&quot; xpathExpression=&quot;request/@action&quot; /&gt; - &lt;/pipe&gt;</code> - </pre> + &lt;/pipe&gt;</code></pre> When you need to replace a fixed value use the ReplacerPipe with find and replace. This looked like this: - <pre> - <code>&lt;FixedResultPipe name=&quot;InputValidateError&quot; + <pre><code>&lt;FixedResultPipe name=&quot;InputValidateError&quot; filename=&quot;ManageFileSystem/xml/ErrorMessage.xml&quot; replaceFrom=&quot;%reasonCode&quot; replaceTo=&quot;NOT_WELL_FORMED_XML&quot;&gt; &lt;forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; - &lt;/FixedResultPipe&gt;</code> - </pre> + &lt;/FixedResultPipe&gt;</code></pre> And now should be solved like this: - <pre> - <code>&lt;FixedResultPipe name=&quot;InputValidateError&quot; + <pre><code>&lt;FixedResultPipe name=&quot;InputValidateError&quot; filename=&quot;ManageFileSystem/xml/ErrorMessage.xml&quot;&gt; &lt;forward name=&quot;success&quot; path=&quot;replaceReasonCode&quot; /&gt; &lt;/FixedResultPipe&gt; @@ -13852,15 +12532,13 @@ find=&quot;%reasonCode&quot; replace=&quot;NOT_WELL_FORMED_XML&quot;&gt; &lt;forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; - &lt;/ReplacerPipe&gt;</code> - </pre> + &lt;/ReplacerPipe&gt;</code></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>&lt;CompareStringPipe name=&quot;compareIdAndCid&quot; &gt; + <pre><code>&lt;CompareStringPipe name=&quot;compareIdAndCid&quot; &gt; &lt;param name=&quot;operand1&quot; sessionKey=&quot;id&quot;/&gt; &lt;param name=&quot;operand2&quot; sessionKey=&quot;cid&quot;/&gt; &lt;forward name=&quot;equals&quot; path=&quot;IdAndCidSame&quot; /&gt; @@ -13881,12 +12559,10 @@ &lt;param name=&quot;CID&quot; sessionKey=&quot;cid&quot; /&gt; &lt;param name=&quot;SAME&quot; sessionKey=&quot;IdAndCidSame&quot; /&gt; &lt;forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; - &lt;/pipe&gt;</code> - </pre> + &lt;/pipe&gt;</code></pre> Was rewritten to the following: - <pre> - <code>&lt;CompareStringPipe name=&quot;compareIdAndCid&quot; &gt; + <pre><code>&lt;CompareStringPipe name=&quot;compareIdAndCid&quot; &gt; &lt;param name=&quot;operand1&quot; sessionKey=&quot;id&quot;/&gt; &lt;param name=&quot;operand2&quot; sessionKey=&quot;cid&quot;/&gt; &lt;forward name=&quot;equals&quot; path=&quot;IdAndCidSame&quot; /&gt; @@ -13910,8 +12586,7 @@ &lt;param name=&quot;CID&quot; sessionKey=&quot;cid&quot; /&gt; &lt;param name=&quot;SAME&quot; sessionKey=&quot;IdAndCidSame&quot; /&gt; &lt;forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; - &lt;/pipe&gt;</code> - </pre> + &lt;/pipe&gt;</code></pre> <p> <h2>The features/documentation of the deprecated features</h2> @@ -14003,7 +12678,7 @@ 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 + available on the DTAP 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}). @@ -14092,6 +12767,100 @@ + + + Selects a forward based on an expression. The expression type is coupled to the mediaType: + <ul> + <li>XML (application/xml) uses Xpath</li> + <li>JSON (application/json) uses jsonPath</li> + </ul> + The XML mediaType is the default type, if you want to use json, you need to set this using 'mimeType' in the Message. + + <h4>Expressions</h4> + Expressions are used to select nodes in the given input document. Imagine a collection of books: + <pre><code>{ + &quot;store&quot;: { + &quot;book&quot;: [ + { + &quot;category&quot;: &quot;reference&quot;, + &quot;author&quot;: &quot;Nigel Rees&quot;, + &quot;title&quot;: &quot;Sayings of the Century&quot;, + &quot;price&quot;: 8.95 + }, + { + &quot;category&quot;: &quot;fiction&quot;, + &quot;author&quot;: &quot;Evelyn Waugh&quot;, + &quot;title&quot;: &quot;Sword of Honour&quot;, + &quot;price&quot;: 12.99 + }, + { + &quot;category&quot;: &quot;fiction&quot;, + &quot;author&quot;: &quot;Herman Melville&quot;, + &quot;title&quot;: &quot;Moby Dick&quot;, + &quot;isbn&quot;: &quot;0-553-21311-3&quot;, + &quot;price&quot;: 8.99 + }, + { + &quot;category&quot;: &quot;fiction&quot;, + &quot;author&quot;: &quot;J. R. R. Tolkien&quot;, + &quot;title&quot;: &quot;The Lord of the Rings&quot;, + &quot;isbn&quot;: &quot;0-395-19395-8&quot;, + &quot;price&quot;: 22.99 + } + ] + } + }</code></pre> + <p> + With both expression languages you'll be able to select one or multiple nodes from this collection. + <br/> + Using this pipe there are two options. Use it only with an <code>expression</code> or combine it with an <code>expressionValue</code>. When using the expression, + the pipe evaluates to <code>thenForwardName</code> when <em>there is a match</em>, even it is empty. In the given example, this might be one of: + <pre><code>$.store + $.store.book[1] + $.store.book[?(@.price == 22.99)].author + $.store.book[?(@.category == 'fiction')]</code></pre> + + <h4>expressionValue</h4> + When using expression combined with expressionValue, the pipe evaluates to <code>thenForwardName</code> when the <em>the matched value is equal to + expressionValue</em>. This needs to be an exact match. + <br/> + + <h4>XML/XPATH</h4> + Xpath has been around a long time, information about the syntax can be found everywhere on the internet. + The XML implementation wraps the Xpath expression in an XSL. This enables us to use complex expressions which evaluate to true or false instead of + being used only as a selector of nodes in the input XML. This is available to be backwards compatible with the XmlIf pipe. + For instance, take the following example input: + <pre><code>&lt;results&gt; + &lt;result name=&quot;test&quot;&gt;&lt;/result&gt; + &lt;result name=&quot;test&quot;&gt;&lt;/result&gt; + &lt;/results&gt;</code></pre> + Examples with complex expressions might be something like: <code>number(count(/results/result[contains(@name , 'test')])) &gt; 1</code>, to test if there's more + than one node found containing the string 'test'. Please check if a simpler, less error-prone expression like + <code>/results/result[contains(@name, 'test')]</code> can suffice. + <p></p> + + <h4>Without expression</h4> + Without an expression, the default behaviour is to assume the input is a string, the code will try to match the string to an optional regular expression + or tries to match the string value to the optional expressionValue. + <p></p> + + <h4>Resources</h4> + <ul> + <li><a href="https://github.com/json-path/JsonPath">JsonPath / Jayway implementation including examples</a></li> + <li><a href="https://jsonpath.fly.dev/">JsonPath online evaluator</a></li> + <li><a href="https://www.w3schools.com/xml/xpath_syntax.asp">Xpath syntax</a></li> + <li><a href="https://www.freeformatter.com/xpath-tester.html">Xpath online evaluator</a></li> + <li><a href="https://en.wikipedia.org/wiki/XPath">Xpath information and history</a></li> + </ul> + + + + + + + + + Pipe that increases the integer value of a session variable. @@ -14577,16 +13346,15 @@ 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>If the attribute <code>find</code> is provided, the pipe will attempt to replace the provided value with the content of the attribute <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. + with <code>?{...}</code>, for instance text like: <code>?{parameterOne}</code> in combination with a parameter <code>parameterOne</code> will use the value of this Parameter. + If a parameter for the given value is not found, it will not be replaced and the <code>?{parameterOne}</code> value will remain in the output.</li> <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> + </ol><br><br><b>TIP</b><p>See Parameter to see how parameter values are determined.</p> @@ -14935,18 +13703,6 @@ - - - Selects a forward, based on XPath evaluation - - - - - - - - - Selects an exitState, based on either the content of the input message, by means @@ -15052,7 +13808,7 @@ Transformation direction. Default: Adios2Xml - + @@ -15115,7 +13871,7 @@ - + @@ -15331,7 +14087,7 @@ Default: ENCODE - + @@ -15437,7 +14193,7 @@ - + @@ -15457,11 +14213,7 @@ Alternatively: xpath-expression to create stylesheet from - - - 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. - - + Only valid for xpathexpression Default: text @@ -15611,11 +14363,7 @@ Alternatively: xpath-expression to create stylesheet from - - - 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. - - + Only valid for xpathexpression Default: text @@ -16166,6 +14914,55 @@ + + + + + + + + + a 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'-forward + + + + + xpath expression to be applied to the input-message. if not set, no transformation is done when the input message is mediatype XML + + + + + jsonPath expression to be applied to the input-message. if not set, no transformation is done when the input message is mediatype JSON + + + + + 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) Default: 2 + + + + + namespace 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: true + + + + + Default: DefaultMediaType.XML + + + + + + + + + + @@ -16595,9 +15392,9 @@ - + - + Url to context to search in, e.g. 'ldaps://DOMAIN.EXT'. @@ -16645,8 +15442,8 @@ - - + + @@ -16673,7 +15470,7 @@ - + @@ -16695,9 +15492,9 @@ - + - + If parameter [<code>action</code>] is set, then the attribute action value will be overridden with the value of the parameter. @@ -16794,8 +15591,8 @@ - - + + @@ -16835,7 +15632,7 @@ Default: OBFUSCATE - + @@ -16854,7 +15651,7 @@ Action to be taken when pipe is executed. - + @@ -17368,7 +16165,7 @@ - + @@ -17438,7 +16235,7 @@ - + @@ -17553,7 +16350,7 @@ - + @@ -17575,7 +16372,7 @@ Action to be taken when pipe is executed. Default: SIGN - + @@ -17885,70 +16682,24 @@ - - - - - - - name of the file (resource) on the classpath to read the xquery from - - - - - name of the file on the file system to read the xquery from - - - - - - - - - - - - - - - - a 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'-forward - - - - - forward returned when output is <code>true</code> Default: then - - - - - forward returned when output is <code>false</code> Default: else - - - - - xpath expression to be applied to the input-message. if not set, no transformation is done - - - - - 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) Default: 2 - - - + + + + + - namespace definitions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code> definitions. + name of the file (resource) on the classpath to read the xquery from - + - controls namespace-awareness of XSLT transformation Default: true + name of the file on the file system to read the xquery from - - - + + + @@ -18051,15 +16802,15 @@ - + - + Collectors must be opened before you can write content to them, after it's closed you can no longer write to it. Default: WRITE - + @@ -18068,8 +16819,8 @@ - - + + @@ -19297,7 +18048,7 @@ - + @@ -19325,14 +18076,14 @@ - + - + - + Group in which to sort multiple jobs. Default: Name of the Configuration this job has been specified in. @@ -19372,17 +18123,17 @@ - - + + - - + + - + @@ -19395,11 +18146,11 @@ - + - + @@ -19410,11 +18161,11 @@ - + - + @@ -19437,20 +18188,20 @@ - + - - + + - - + + - + @@ -19468,7 +18219,7 @@ - + @@ -19492,7 +18243,7 @@ - + @@ -19522,15 +18273,15 @@ - + - + - + The functional name of the object. @@ -19770,6 +18521,12 @@ + + + + + + @@ -19949,8 +18706,12 @@ + + + Currently only used by the SignaturePipe to use a PEM certificate directly as a truststore. + + - @@ -20037,695 +18798,601 @@ - - - - - - - + - - - list files in a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input message - - - - - show info about a single file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message - - - - - read a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message - - - - - like <code>read</code>, but deletes the file after it has been read - - - - - move 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> + Fire & Forget protocol - + - delete a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message + Request-Reply protocol - + + + + + - create a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input message + use the generated messageId as the correlationId in the selector for response messages - + - remove a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input message + set the correlationId of the pipeline as the correlationId of the message sent, and use that as the correlationId in the selector for response messages - + - Creates 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. + do 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 messages - + + + + + - (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. + to mask the entire string - + - create empty file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message + to only mask the first half of the string - + + + + + + + + + + + + - change 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> + Don't stop the receiver when an error occurs. - + - (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> + 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. - + - Specific to FileSystemSenderWithAttachments + Stop the receiver when an error occurs. - + - - - + + - + - - - Create a document - - - + - Delete a document + Support a current transaction; create a new one if none exists. - + - Get the content of a document (and optional the properties) + Support a current transaction; execute non-transactionally if none exists. - + - Perform a query that returns properties + Support a current transaction; throw an exception if no current transaction exists. - + - Update the properties of an existing document + Create a new transaction, suspending the current transaction if one exists. - + - Get the (meta)data of a folder or document + Do not support a current transaction; rather always execute non-transactionally. - + - Determine action based on the incoming CmisEvent + Do not support a current transaction; throw an exception if a current transaction exists. - - - - - - - - + - - - For queries that return data - - - + - For queries that update a BLOB + Temporary - + - For queries that update a CLOB + Permanent - + + + + + + + - To execute Oracle PL/SQL package + No wrapping or unwrapping will be done - + - For queries that return no data + Try to auto-detect the value - - - - - - - - - Fire & Forget protocol - - - - - Request-Reply protocol - - + + - + - + - use the generated messageId as the correlationId in the selector for response messages + ifsa2tibco - + - set the correlationId of the pipeline as the correlationId of the message sent, and use that as the correlationId in the selector for response messages + Regular - + - do 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 messages + Business Integration Services - + - - - - + + - + - + + + + + + + + + + + + + + + + + + + + - The input message is sent unchanged as character data, like text, XML or JSON, with possibly parameter data appended + list files in a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input message - + - The input message is sent unchanged as binary data + show info about a single file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message - + - Yields a x-www-form-urlencoded form entity + read a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message - + - Yields a multipart/form-data form entity + like <code>read</code>, but deletes the file after it has been read - + - Yields a MTOM multipart/related form entity + move 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> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - Read 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> + 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> - + - 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> + delete a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message - + - 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> + create a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input message - + - 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> + remove a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input message - + - 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 'attributesToReturn' containing attributes to be returned</li> - </ul> + Creates 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. - + - 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 'attributesToReturn' containing attributes to be returned</li> - </ul> + (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. - + - 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 'attributesToReturn' containing attributes to be returned</li> - </ul> + create empty file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message - + - 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 'attributesToReturn' containing attributes to be returned</li> - </ul> + change 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> - + - 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> + (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> - + - 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> + Specific to FileSystemSenderWithAttachments - - - - - - - + - - - + + + - + - + - to mask the entire string + Create a document - + - to only mask the first half of the string + Delete a document - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - Don't stop the receiver when an error occurs. + Get the content of a document (and optional the properties) - + - 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. + Perform a query that returns properties - + - Stop the receiver when an error occurs. + Update the properties of an existing document + + + + + Get the (meta)data of a folder or document + + + + + Determine action based on the incoming CmisEvent - + - - + + + - + - - - Support a current transaction; create a new one if none exists. - - - + - Support a current transaction; execute non-transactionally if none exists. + For queries that return data - + - Support a current transaction; throw an exception if no current transaction exists. + For queries that update a BLOB - + - Create a new transaction, suspending the current transaction if one exists. + For queries that update a CLOB - + - Do not support a current transaction; rather always execute non-transactionally. + To execute Oracle PL/SQL package - + - Do not support a current transaction; throw an exception if a current transaction exists. + For queries that return no data - + - + + + + + + + + + + + + + + + - 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 required + The input message is sent unchanged as character data, like text, XML or JSON, with possibly parameter data appended - + - Renders an xml-nodeset as an xml-string (in combination with xslt or xpath). This will include the xml tags + The input message is sent unchanged as binary data - + - Renders 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... + Yields a x-www-form-urlencoded form entity - + - 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) + Yields a multipart/form-data form entity - + - 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 used + Yields a MTOM multipart/related form entity - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - Converts the result to a Date, by default using formatString <code>HH:mm:ss</code>. - When applied as a JDBC parameter, the method setTime() is used + Read 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> - + - Converts 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 used + 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> - + - Similar to <code>DATETIME</code>, except for the formatString that is <code>yyyy-MM-dd HH:mm:ss.SSS</code> by default + 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> - + - Converts the result from a XML formatted dateTime to a Date. - When applied as a JDBC parameter, the method setTimestamp() is used + 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> - + - Converts the result to a Number, using decimalSeparator and groupingSeparator. - When applied as a JDBC parameter, the method setDouble() is used + 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 'attributesToReturn' containing attributes to be returned</li> + </ul> - + - Converts the result to an Integer + 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 'attributesToReturn' containing attributes to be returned</li> + </ul> - + - Converts the result to a Boolean + 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 'attributesToReturn' containing attributes to be returned</li> + </ul> - + - Forces 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 used + 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 'attributesToReturn' containing attributes to be returned</li> + </ul> - + - Forces 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 used + 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> - + - Used for StoredProcedure OUT parameters when the database type is a <code>CURSOR</code> 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 (&lt;items&gt;&lt;item&gt;...&lt;/item&gt;&lt;item&gt;...&lt;/item&gt;&lt;/items&gt;) + 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> - + - - - Temporary - - - - - Permanent - - + + - + - - - - - No wrapping or unwrapping will be done - - - - - Try to auto-detect the value - - + + + + + + + + - + - - + + + - + - - - ifsa2tibco - - - - - Regular - - - - - Business Integration Services - - + + + + + + + + + + + + + + + + - + - - + + + + + + - + - - + + - + - - - + + + + + + + - + @@ -20782,6 +19449,92 @@ + + + + + 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 required + + + + + Renders an xml-nodeset as an xml-string (in combination with xslt or xpath). This will include the xml tags + + + + + 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 used + + + + + Converts the result to a Date, by default using formatString <code>HH:mm:ss</code>. + When applied as a JDBC parameter, the method setTime() is used + + + + + Converts 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 used + + + + + Similar to <code>DATETIME</code>, except for the formatString that is <code>yyyy-MM-dd HH:mm:ss.SSS</code> by default + + + + + Converts the result from a XML formatted dateTime to a Date. + When applied as a JDBC parameter, the method setTimestamp() is used + + + + + Converts the result to a Number, using decimalSeparator and groupingSeparator. + When applied as a JDBC parameter, the method setDouble() is used + + + + + Converts the result to an Integer + + + + + Converts the result to a Boolean + + + + + Forces 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 used + + + + + Forces 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 used + + + + + Used for StoredProcedure OUT parameters when the database type is a <code>CURSOR</code> 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 (&lt;items&gt;&lt;item&gt;...&lt;/item&gt;&lt;item&gt;...&lt;/item&gt;&lt;/items&gt;) + + + + @@ -20804,6 +19557,12 @@ + + + + + + @@ -20824,13 +19583,13 @@ - + - + @@ -20887,7 +19646,7 @@ - + @@ -20915,7 +19674,7 @@ - + @@ -20944,153 +19703,57 @@ No logging - - - - - Logs information from adapter level messages - - - - - Logs information from pipe messages - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The 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 itself - - - - - Instead 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 returned - - - - - Comma 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 string - - - - - If set (>=0) and the length of the value of the parameter falls short of this minimum length, the value is padded Default: -1 - - - - - If set (>=0) and the length of the value of the parameter exceeds this maximum length, the length is trimmed to this maximum length Default: -1 - - - - - If 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. - - - - - + + + + + Logs information from adapter level messages + + + + + Logs information from pipe messages + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the JMS destination (queue or topic) to use for sending replies. If <code>useReplyTo=true</code>, @@ -21326,784 +19989,789 @@ Name of the field in the ExportParameterList of the RFC function that contains the whole reply message contents - + - Controls 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> + Parameter that is used, if specified and not empty, to determine the destination. Overrides the <code>destination</code> attribute - + - 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: false + Name 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 - + - When <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: false + (Only used when <code>synchronous=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: MESSAGEID + + + - + - Value used in result as contents of fields that contain no value (sql-null) Default: <i>empty string</i> + Value of the JMSType field Default: not set by application - + - Query that can be used to obtain result of side-effect of update-query, like generated value of sequence. Example: SELECT mysequence.currval FROM dual + Sets 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: -1 - + - Named parameters will be auto-detected by default. Every string in the query which equals <code><code>?{</code>paramname<code>}</code></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. + SOAP encoding style URI - + - 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) + SOAP service namespace URI - + - Remove trailing blanks from all result values. Default: true + Name of parameter containing SOAP header Default: soapHeader - + - When <code>true</code>, the result of sendMessage is the reply of the request. Default: true + session key to store SOAP header of reply Default: replySoapHeader - + - When set to <code>false</code>, the Outputstream is not closed after BLOB or CLOB has been written to it Default: true + A list of JMS headers of the response to add to the PipeLineSession - + - Charset 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 conversion + 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 Pipe - + - If true and scalar=false, multiline indented XML is produced Default: false + The name of the column slotids are stored in Default: SLOTID - + - The 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: false + The name of the column types are stored in Default: TYPE - - - - + - Parameter that is used, if specified and not empty, to determine the destination. Overrides the <code>destination</code> attribute + The name of the column that stores the hostname of the server Default: HOST - + - Name 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 + The name of the sequence used to generate the primary key, for DBMSes that use sequences, like Oracle Default: seq_ibisstore - + - (Only used when <code>synchronous=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: MESSAGEID + If set to <code>true</code>, checks are performed if the table exists and is properly created Default: false - - - - + - Value of the JMSType field Default: not set by application + The type of the column message themselves are stored in - + - Sets 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: -1 + The type of the column that contains the primary key of the table - + - SOAP encoding style URI + The type of the column the timestamps are stored in - + - SOAP service namespace URI + The 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. - + - Name of parameter containing SOAP header Default: soapHeader + 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: 30 - + - session key to store SOAP header of reply Default: replySoapHeader + Schema owner to be used to check the database Default: &lt;current_schema&gt; (only for oracle) - + - A list of JMS headers of the response to add to the PipeLineSession + 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: true - + - When 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: 0 + Set transactionTimeout in seconds. Default: <code>0</code> (use system default) - + - URL or base of URL to be used + 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: Supports + + + - + - Parameter that is used to obtain URL; overrides url-attribute. Default: url + If set, input is taken from this session key, instead of regular input - + - The HTTP Method used to execute the request Default: <code>GET</code> + If set, this fixed value is taken as input, instead of regular input - - - - + - 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> + If set and the input is empty, this fixed value is taken as input - + - Charset of the request. Typically only used on <code>PUT</code> and <code>POST</code> requests. Default: UTF-8 + If 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>) - + - Comma separated list of parameter names which should be set as HTTP headers + 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. - + - Comma 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 parameters + The maximum number of threads that may messages simultaneously. + A value of 0 indicates an unlimited number of threads. Default: 0 - + - If <code>true</code>, the HTML response is transformed to XHTML Default: false + If 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 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. + 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> + } - - + - The maximum number of concurrent connections Default: 10 + (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 element - + - The maximum number of times the execution is retried Default: 1 (for repeatable messages) else 0 + Like <code>elementToMove</code> but element is preceded with all ancestor elements and separated by semicolons (e.g. 'adapter;pipeline;pipe') - + - Endpoint 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 durationThreshold >=0 and the duration of the message processing exceeded the value specified (in milliseconds) the message is logged informatory to be analyzed Default: -1 - + + - 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: -1 + If set <code>true</code>, compacted messages in the result are restored to their original format (see also #setElementToMove(java.lang.String)) - + - Alias used to obtain client_id and client_secret for authentication to <code>tokenEndpoint</code> + Collect and aggregate Message size statistics - + - Client_id used in authentication to <code>tokenEndpoint</code> + when set to <code>true</code> a record is written to the security log when the pipe has finished successfully - + - Client_secret used in authentication to <code>tokenEndpoint</code> + (only used when <code>writeToSecLog=true</code>) comma separated list of keys of session variables that is appended to the security log record - + - Space or comma separated list of scope items requested for accessToken, e.g. <code>read write</code>. Only used when <code>tokenEndpoint</code> is specified + when set, the value in AppConstants is overwritten (for this pipe only) - + - if set true, clientId and clientSecret will be added as Basic Authentication header to the tokenRequest, instead of as request parameters + Regular expression to mask strings in the log. For example, the regular expression <code>(?&lt;=&lt;password&gt;).*?(?=&lt;/password&gt;)</code> + will replace every character between keys '&lt;password&gt;' and '&lt;/password&gt;'. <b>note:</b> this feature is used at adapter level, + so a <code>hideRegex</code> 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</code> for how regular expressions are matched and replaced. - + - Proxy host + 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> - + - Proxy port Default: 80 + 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,) - + - Alias used to obtain credentials for authentication to proxy + Can be used when the SOAP header element exists multiple times - + - Proxy username + SOAP envelope XSD version to use Default: 1.1 + + + - + - Proxy password + Allow 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: false - + - Proxy realm + Ignore 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 otherwise - + - Create a pre-emptive login context for the proxy connection(s). + Pairs 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. - + - Disables the use of cookies, making the sender completely stateless Default: false + A uri reference as a hint as to the location of a schema document with no target namespace. - + - resource URL to keystore or certificate to be used for authentication. If none specified, the JVMs default keystore will be used. + 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 used - + - Type of keystore Default: pkcs12 + 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> - - - - + - Authentication alias used to obtain keystore password + Should the XmlValidator throw a PipeRunexception on a validation error. If not, a forward with name 'failure' must be defined. Default: false - + - Default password to access keystore + If set: key of session variable to store reasons of mis-validation in Default: failureReason - + - Key manager algorithm. Can be left empty to use the servers default algorithm + Like <code>reasonSessionKey</code> but stores reasons in xml format and more extensive Default: xmlFailureReason - + - Alias to obtain specific certificate or key in keystore + If 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: false - + - Authentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + Characterset used for reading file, only used when <code>validateFile</code> is <code>true</code> Default: utf-8 - + - Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + If set <code>true</code>, the namespace from schemalocation is added to the schema document as targetnamespace Default: false - + - Resource URL to truststore to be used for authenticating peer. If none specified, the JVMs default truststore will be used. + Comma separated list of schemaLocations which are excluded from an import or include in the schema document - + - Authentication alias used to obtain truststore password + If set <code>true</code>, the comparison for importedSchemaLocationsToIgnore is done on base filename without any path Default: false - + - Default password to access truststore + Comma separated list of namespaces which are excluded from an import or include in the schema document - + - Type of truststore Default: jks + If 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 <code>XSD_VALIDATION_WARNINGS_SUPPRESS_KEY</code>, <code>XSD_VALIDATION_ERROR_SUPPRESS_KEY</code> and <code>XSD_VALIDATION_FATAL_ERROR_SUPPRESS_KEY</code> Default: true - - - - + - Trust manager algorithm. Can be left empty to use the servers default algorithm + If set <code>true</code>, the number for caching validators in appConstants is ignored and no caching is done (for this validator only) Default: false - + - If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer. Note: This attribute is unsafe and should not be used in a production environment. Default: false + If 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> - + - If <code>true</code>, self signed certificates are accepted. Note: This attribute is unsafe and should not be used in a production environment. Default: false + Key of session variable to store the name of the root element - + - If <code>true</code>, CertificateExpiredExceptions are ignored. Note: This attribute is unsafe and should not be used in a production environment. Default: false + Key of session variable to store the namespace of the root element - + - If <code>true</code>, a redirect request will be honoured, e.g. to switch to HTTPS Default: true + Session key for retrieving a schema - + - If true, besides http status code 200 (OK) also the code 301 (MOVED_PERMANENTLY), 302 (MOVED_TEMPORARILY) and 307 (TEMPORARY_REDIRECT) are considered successful Default: false + Controls 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> - + - Controls whether connections checked to be stale, i.e. appear open, but are not. Default: true + 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: false - + - Used when <code>staleChecking</code> is <code>true</code>. Timeout after which an idle connection will be validated before being used. Default: 5000 ms + When <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: false - + - Maximum Time to Live for connections in the pool. No connection will be re-used past its timeToLive value. Default: 900 s + Value used in result as contents of fields that contain no value (sql-null) Default: <i>empty string</i> - + - Maximum Time for connection to stay idle in the pool. Connections that are idle longer will periodically be evicted from the pool Default: 10 s + Query that can be used to obtain result of side-effect of update-query, like generated value of sequence. Example: SELECT mysequence.currval FROM dual - + - Secure socket protocol (such as 'TLSv1.2') to use when a SSLContext object is generated. Default: TLSv1.2 + Named parameters will be auto-detected by default. Every string in the query which equals <code><code>?{</code>paramname<code>}</code></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. - + - Allows you to choose which CipherSuites are used when connecting to an endpoint. Works in tandem with <code>protocol</code> 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. + 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) - + - If set <code>true</code> the input is written to the log file, at DEBUG level Default: false + Remove trailing blanks from all result values. Default: true - + - userId on the smtphost + When <code>true</code>, the result of sendMessage is the reply of the request. Default: true - + - Set the default value of the subject: header, if not specified in message itself + When set to <code>false</code>, the Outputstream is not closed after BLOB or CLOB has been written to it Default: true - + - Set the default from: header, if not specified in message itself + Charset 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 conversion - + - When this name is used, it will be followed by a number which is equal to the node's position Default: attachment + If true and scalar=false, multiline indented XML is produced Default: false - + - when messageType is not specified defaultMessageType will be used Default: text/plain + The 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: false + + + - + - when messageBase64 is not specified defaultMessageBase64 will be used Default: false + When 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: 0 - + - NDR return address when mail cannot be delivered. This adds a Return-Path header Default: MAIL FROM attribute + URL or base of URL to be used - + - Comma separated list of domains to which mails can be send, domains not on the list are filtered out. Empty allows all domains + Parameter that is used to obtain URL; overrides url-attribute. Default: url - + - 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 Pipe + The HTTP Method used to execute the request Default: <code>GET</code> + + + - + - The name of the column slotids are stored in Default: SLOTID + 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> - + - The name of the column types are stored in Default: TYPE + Charset of the request. Typically only used on <code>PUT</code> and <code>POST</code> requests. Default: UTF-8 - + - The name of the column that stores the hostname of the server Default: HOST + Comma separated list of parameter names which should be set as HTTP headers - + - The name of the sequence used to generate the primary key, for DBMSes that use sequences, like Oracle Default: seq_ibisstore + Comma 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 parameters - + - If set to <code>true</code>, checks are performed if the table exists and is properly created Default: false + If <code>true</code>, the HTML response is transformed to XHTML Default: false - + - The type of the column message themselves are stored in + If 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 type of the column that contains the primary key of the table + The maximum number of concurrent connections Default: 10 - + - The type of the column the timestamps are stored in + The maximum number of times the execution is retried Default: 1 (for repeatable messages) else 0 - + - The 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. + Endpoint 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. - + - 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: 30 + 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: -1 - + - Schema owner to be used to check the database Default: &lt;current_schema&gt; (only for oracle) + Alias used to obtain client_id and client_secret for authentication to <code>tokenEndpoint</code> - + - 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: true + Client_id used in authentication to <code>tokenEndpoint</code> - + - Timeout (in seconds) of transaction started to process a message. Default: <code>0</code> (use system default) + Client_secret used in authentication to <code>tokenEndpoint</code> - + - 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: Supports + Space or comma separated list of scope items requested for accessToken, e.g. <code>read write</code>. Only used when <code>tokenEndpoint</code> is specified - - - - + - If set, input is taken from this session key, instead of regular input + if set true, clientId and clientSecret will be added as Basic Authentication header to the tokenRequest, instead of as request parameters - + - If set, this fixed value is taken as input, instead of regular input + Proxy host - + - If set and the input is empty, this fixed value is taken as input + Proxy port Default: 80 - + - If 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>) + Alias used to obtain credentials for authentication to proxy - + - 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. + Proxy username - + - The maximum number of threads that may messages simultaneously. - A value of 0 indicates an unlimited number of threads. Default: 0 + Proxy password - + - If set (>=0) and the character data length inside a xml element exceeds this size, the character data is chomped (with a clear comment) + Proxy realm - + - 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> + } + Create a pre-emptive login context for the proxy connection(s). - + - (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 element + Disables the use of cookies, making the sender completely stateless Default: false - + - Like <code>elementToMove</code> but element is preceded with all ancestor elements and separated by semicolons (e.g. 'adapter;pipeline;pipe') + resource URL to keystore or certificate to be used for authentication. If none specified, the JVMs default keystore will be used. - + - 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: -1 + Type of keystore Default: pkcs12 + + + - - + - If set <code>true</code>, compacted messages in the result are restored to their original format (see also #setElementToMove(java.lang.String)) + Authentication alias used to obtain keystore password - + - Collect and aggregate Message size statistics + Default password to access keystore - + - when set to <code>true</code> a record is written to the security log when the pipe has finished successfully + Key manager algorithm. Can be left empty to use the servers default algorithm - + - (only used when <code>writeToSecLog=true</code>) comma separated list of keys of session variables that is appended to the security log record + Alias to obtain specific certificate or key in keystore - + - when set, the value in AppConstants is overwritten (for this pipe only) + Authentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code> - + - Regular expression to mask strings in the log. For example, the regular expression <code>(?&lt;=&lt;password&gt;).*?(?=&lt;/password&gt;)</code> - will replace every character between keys '&lt;password&gt;' and '&lt;/password&gt;'. <b>note:</b> this feature is used at adapter level, - so a <code>hideRegex</code> 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</code> for how regular expressions are matched and replaced. + Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code> - + - 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> + Resource URL to truststore to be used for authenticating peer. If none specified, the JVMs default truststore will be used. - + - 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,) + Authentication alias used to obtain truststore password - + - Can be used when the SOAP header element exists multiple times + Default password to access truststore - + - SOAP envelope XSD version to use Default: 1.1 + Type of truststore Default: jks - + - + - Allow 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: false + Trust manager algorithm. Can be left empty to use the servers default algorithm - + - Ignore 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 otherwise + If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer. Note: This attribute is unsafe and should not be used in a production environment. Default: false - + - Pairs 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. + If <code>true</code>, self signed certificates are accepted. Note: This attribute is unsafe and should not be used in a production environment. Default: false - + - A uri reference as a hint as to the location of a schema document with no target namespace. + If <code>true</code>, CertificateExpiredExceptions are ignored. Note: This attribute is unsafe and should not be used in a production environment. Default: false - + - 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 used + If <code>true</code>, a redirect request will be honoured, e.g. to switch to HTTPS Default: true - + - 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> + If true, besides http status code 200 (OK) also the code 301 (MOVED_PERMANENTLY), 302 (MOVED_TEMPORARILY) and 307 (TEMPORARY_REDIRECT) are considered successful Default: false - + - Should the XmlValidator throw a PipeRunexception on a validation error. If not, a forward with name 'failure' must be defined. Default: false + Controls whether connections checked to be stale, i.e. appear open, but are not. Default: true - + - If set: key of session variable to store reasons of mis-validation in Default: failureReason + Used when <code>staleChecking</code> is <code>true</code>. Timeout after which an idle connection will be validated before being used. Default: 5000 ms - + - Like <code>reasonSessionKey</code> but stores reasons in xml format and more extensive Default: xmlFailureReason + Maximum Time to Live for connections in the pool. No connection will be re-used past its timeToLive value. Default: 900 s - + - If 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: false + Maximum Time for connection to stay idle in the pool. Connections that are idle longer will periodically be evicted from the pool Default: 10 s - + - Characterset used for reading file, only used when <code>validateFile</code> is <code>true</code> Default: utf-8 + Secure socket protocol (such as 'TLSv1.2') to use when a SSLContext object is generated. Default: TLSv1.2 - + - If set <code>true</code>, the namespace from schemalocation is added to the schema document as targetnamespace Default: false + Allows you to choose which CipherSuites are used when connecting to an endpoint. Works in tandem with <code>protocol</code> 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. - + - Comma separated list of schemaLocations which are excluded from an import or include in the schema document + If set <code>true</code> the input is written to the log file, at DEBUG level Default: false - + - If set <code>true</code>, the comparison for importedSchemaLocationsToIgnore is done on base filename without any path Default: false + userId on the smtphost - + - Comma separated list of namespaces which are excluded from an import or include in the schema document + Set the default value of the subject: header, if not specified in message itself - + - If 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 <code>XSD_VALIDATION_WARNINGS_SUPPRESS_KEY</code>, <code>XSD_VALIDATION_ERROR_SUPPRESS_KEY</code> and <code>XSD_VALIDATION_FATAL_ERROR_SUPPRESS_KEY</code> Default: true + Set the default from: header, if not specified in message itself - + - If set <code>true</code>, the number for caching validators in appConstants is ignored and no caching is done (for this validator only) Default: false + When this name is used, it will be followed by a number which is equal to the node's position Default: attachment - + - If 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> + when messageType is not specified defaultMessageType will be used Default: text/plain - + - Key of session variable to store the name of the root element + when messageBase64 is not specified defaultMessageBase64 will be used Default: false - + - Key of session variable to store the namespace of the root element + NDR return address when mail cannot be delivered. This adds a Return-Path header Default: MAIL FROM attribute - + - Session key for retrieving a schema + Comma separated list of domains to which mails can be send, domains not on the list are filtered out. Empty allows all domains + + + + + 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. diff --git a/src/main/configurations/FrankConfig.xsd b/src/main/configurations/FrankConfig.xsd index 44042d99..9fb6ebeb 100644 --- a/src/main/configurations/FrankConfig.xsd +++ b/src/main/configurations/FrankConfig.xsd @@ -1,5 +1,5 @@ - + Container of Adapters that belong together. @@ -140,21 +140,20 @@ 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> + <tr><th>situation</th><th>input listener</th><th>Pipeline</th><th>inProcess storage</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>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 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>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>no changes, input message remains on input available for listener</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> + not present in inProcess storage</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> + the message is removed from the input queue and either (one of) still in inProcess storage</li> </ul> <p><b>commit or rollback</b><br/> @@ -170,7 +169,6 @@ - @@ -231,14 +229,9 @@ - - - The 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: 5 - - - The number of times a processing attempt is automatically retried after an exception is caught or rollback is experienced. If <code>maxRetries &lt; 0</code> the number of attempts is infinite Default: 1 + The number of times a processing attempt is automatically retried after an exception is caught or rollback is experienced. If <code>maxRetries &lt; 0</code> the number of attempts is infinite Default: 1, or 3 for JMS Listeners or other listeners implementing IKnowsDeliveryCount. @@ -248,12 +241,12 @@ - XPath expression to extract correlationid from message + XPath expression to extract correlationId from message - Namespace defintions for correlationIDXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions + Namespace definitions for correlationIDXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions @@ -268,7 +261,7 @@ - Namespace defintions for labelXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions + Namespace definitions for labelXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions @@ -325,6 +318,32 @@ Number of connection attempts to put the adapter in warning status Default: 5 + + + After a message has an error in processing, there is a small delay before processing the next + message before processing the next message or retrying the failed message. + This is so that errors coming from external systems so not overload those external systems. + <p> + The delay doubles after every failure, until the maximum set here is reached. See: + <a href="https://en.wikipedia.org/wiki/Exponential_backoff">https://en.wikipedia.org/wiki/Exponential_backoff</a>. + </p> + <p> + If the transaction timeout can be determined, then the backoff-delay is capped by half the transaction timeout to + avoid messages automatically timing out. + </p> + <p> + There is no backoff-time after a message is successfully processed. After a message is successfully processed, + the actual backoff-time is reset to 1 second. + </p> + <p> + If set to 0, then there is no delay after messages that had an error. + </p> + <p> + If this is not set on the receiver, then a default is taken from the configuration property `${receiver.defaultMaxBackoffDelay}` which + defaults to 60 seconds. + </p> + + @@ -332,87 +351,6 @@ - - - Placeholder class to allow legacy configuration notations <code>&lt;param type='number' /&gt;</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: STRING - - - - - - - - Name of the parameter - - - - - - - - - URL 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: 0 - - - - - Namespace 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 specified - - - - - Default username that is used when a <code>pattern</code> containing {username} is specified - - - - - Default password that is used when a <code>pattern</code> containing {password} is specified - - - - - - - - - - - - Required in each Adapter to transform incoming messages. A pipeline @@ -1108,10 +1046,10 @@ - + - + @@ -1140,6 +1078,15 @@ + + + + + + + + + @@ -1158,10 +1105,30 @@ Name of the parameter - - - - + + + The 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 itself + + + + + Instead 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. + + URL to a stylesheet that wil be applied to the contents of the message or the value of the session-variable. @@ -1188,9 +1155,44 @@ When set <code>true</code> namespaces (and prefixes) in the input message are removed before the stylesheet/xpathExpression is executed Default: <code>false</code> - - - + + + If the result of sessionKey, xpathExpression and/or stylesheet returns null or an empty string, this value is returned + + + + + Comma 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>. + + Alias used to obtain username and password, used when a <code>pattern</code> containing {username} or {password} is specified @@ -1206,11 +1208,40 @@ Default password that is used when a <code>pattern</code> containing {password} is specified - - - - - + + + If set <code>true</code> pattern elements that cannot be resolved to a parameter or sessionKey are silently resolved to an empty string + + + + + If set (>=0) and the length of the value of the parameter falls short of this minimum length, the value is padded Default: -1 + + + + + If set (>=0) and the length of the value of the parameter exceeds this maximum length, the length is trimmed to this maximum length Default: -1 + + + + + If 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. + + + + + @@ -1266,6 +1297,22 @@ + + + + + + + + + + + + + + + + @@ -1333,7 +1380,16 @@ /&gt; </code></pre> - </p> + </p> + + listener that looks in a FileSystem for files. + When a file is found, it is moved to an in-process folder, so that it isn't found more than once. + <br/> + The information specified by #setMessageType(IMessageType) is then passed to the pipeline.<br><br><b>INFO</b><p>To avoid problems with duplicate filenames in folders like the <code>errorFolder</code> or <code>processedFolder</code>, + you should configure either <code>overwrite=&quot;true&quot;</code>, configure <code>numberOfBackups</code> to a value larger than 0, or + configure an <code>inProcessFolder</code> and <code>fileTimeSensitive=&quot;true&quot;</code>. + These options can be used together as well.</p><br><b>WARNING</b><p>In addition to the above, prior to release 9.0 it was not sufficient to configure <code>inProcessFolder</code> and <code>fileTimeSensitive</code> + to avoid potential duplicate filename errors. Prior to release 9.0, it is recommended to configure <code>numberOfBackups</code> to avoid these issues.</p> @@ -1384,6 +1440,18 @@ + + File listener for an FTP connection. + + listener that looks in a FileSystem for files. + When a file is found, it is moved to an in-process folder, so that it isn't found more than once. + <br/> + The information specified by #setMessageType(IMessageType) is then passed to the pipeline.<br><br><b>INFO</b><p>To avoid problems with duplicate filenames in folders like the <code>errorFolder</code> or <code>processedFolder</code>, + you should configure either <code>overwrite=&quot;true&quot;</code>, configure <code>numberOfBackups</code> to a value larger than 0, or + configure an <code>inProcessFolder</code> and <code>fileTimeSensitive=&quot;true&quot;</code>. + These options can be used together as well.</p><br><b>WARNING</b><p>In addition to the above, prior to release 9.0 it was not sufficient to configure <code>inProcessFolder</code> and <code>fileTimeSensitive</code> + to avoid potential duplicate filename errors. Prior to release 9.0, it is recommended to configure <code>numberOfBackups</code> to avoid these issues.</p> + @@ -1667,6 +1735,19 @@ + + + Baseclass of a IPushingListener that enables a Receiver + to receive messages from Servlets. + + + + + + + + + Listener that allows a Receiver to receive messages as a REST webservice. @@ -1689,6 +1770,18 @@ + + File listener for an SMB2 or SMB3 share. + + listener that looks in a FileSystem for files. + When a file is found, it is moved to an in-process folder, so that it isn't found more than once. + <br/> + The information specified by #setMessageType(IMessageType) is then passed to the pipeline.<br><br><b>INFO</b><p>To avoid problems with duplicate filenames in folders like the <code>errorFolder</code> or <code>processedFolder</code>, + you should configure either <code>overwrite=&quot;true&quot;</code>, configure <code>numberOfBackups</code> to a value larger than 0, or + configure an <code>inProcessFolder</code> and <code>fileTimeSensitive=&quot;true&quot;</code>. + These options can be used together as well.</p><br><b>WARNING</b><p>In addition to the above, prior to release 9.0 it was not sufficient to configure <code>inProcessFolder</code> and <code>fileTimeSensitive</code> + to avoid potential duplicate filename errors. Prior to release 9.0, it is recommended to configure <code>numberOfBackups</code> to avoid these issues.</p> + @@ -1697,15 +1790,6 @@ - - - - - - - - - Implementation of a IPushingListener, @@ -1726,6 +1810,18 @@ + + File listener for an SFTP connection. + + listener that looks in a FileSystem for files. + When a file is found, it is moved to an in-process folder, so that it isn't found more than once. + <br/> + The information specified by #setMessageType(IMessageType) is then passed to the pipeline.<br><br><b>INFO</b><p>To avoid problems with duplicate filenames in folders like the <code>errorFolder</code> or <code>processedFolder</code>, + you should configure either <code>overwrite=&quot;true&quot;</code>, configure <code>numberOfBackups</code> to a value larger than 0, or + configure an <code>inProcessFolder</code> and <code>fileTimeSensitive=&quot;true&quot;</code>. + These options can be used together as well.</p><br><b>WARNING</b><p>In addition to the above, prior to release 9.0 it was not sufficient to configure <code>inProcessFolder</code> and <code>fileTimeSensitive</code> + to avoid potential duplicate filename errors. Prior to release 9.0, it is recommended to configure <code>numberOfBackups</code> to avoid these issues.</p> + @@ -1926,6 +2022,10 @@ + + + + @@ -1968,9 +2068,9 @@ - + - + Name of the listener @@ -2028,7 +2128,9 @@ - If <code>true</code>, the file modification time is used in addition to the filename to determine if a file has been seen before Default: false + If <code>true</code>, the file modification time is used in addition to the filename to determine if a file has been seen previously. + <br/> + This setting is only supported for filesystem listeners that implement IWritableFileSystem. Default: false @@ -2073,7 +2175,7 @@ - + @@ -2154,12 +2256,12 @@ - + - + By default, the JmsListener takes the Correlation-ID (if present) as the ID that has to be used as Correlation-ID of the reply. @@ -2191,8 +2293,8 @@ - - + + @@ -2262,7 +2364,7 @@ - + @@ -2290,7 +2392,7 @@ - + @@ -2493,9 +2595,9 @@ - + - + Determines the contents of the message that is sent to the Pipeline. can be one of: @@ -2512,9 +2614,9 @@ - - - + + + @@ -2707,10 +2809,10 @@ - + - + @@ -2785,7 +2887,7 @@ - + @@ -2989,7 +3091,7 @@ - + @@ -3180,8 +3282,8 @@ - - + + @@ -3338,12 +3440,8 @@ - + - - - - @@ -3515,7 +3613,7 @@ - + @@ -3534,7 +3632,7 @@ - + @@ -3588,9 +3686,7 @@ - - @@ -3602,7013 +3698,1479 @@ - + - + + + ESB (Enterprise Service Bus) extension of JmsSender. + - - - - + + + + + - - - - - - + - General Cache provider. + JMS sender which will add an IMS header to the message and call the MQ specific logic. - 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>. + <p>See JmsSender for configuration</p> - - + + - - - - - - - - - - The maximum number of elements in memory, before they are evicted Default: 100 - - - - - Either <code>LRU</code>=Least Recent Use,<code>LFU</code>=Least Frequent Use or <code>FIFO</code>=First In - First Out Default: LRU - - - - - If <code>true</code>, the elements in the cache are eternal, i.e. never expire Default: false - - - + + + This class sends messages with JMS. + + + + + + + + + + + + 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> + + + + + + + + + + + + + + + + + + - The amount of time <i>in seconds</i> to live for an element from its creation date Default: 36000 + protocol of ESB service to be called + + + - + - The amount of time <i>in seconds</i> to live for an element from its last accessed or modified date Default: 36000 + receiver timeout, in milliseconds Default: 20000 (20s) - + - If <code>true</code>, the elements that are evicted from memory are spooled to disk Default: false + if messageProtocol=<code>RR</code> then <code>deliveryMode</code> defaults to <code>NON_PERSISTENT</code> Default: not set by application + + + - + - The maximum number of elements on disk, before they are removed Default: 10000 + if messageProtocol=<code>RR</code> then <code>replyTimeout</code> defaults to <code>timeout</code> Default: 5000 - + - If <code>true</code>, the cache is stored on disk and survives configuration reloads & JVM restarts. Default: false + if messageProtocol=<code>RR</code> then <code>synchronous</code> defaults to <code>true</code> Default: false - + - How often to run the disk store expiry thread Default: 600 + if 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) - - - - - - - - name of the cache, will be lowercased Default: <code>&lt;ownerName&gt;</code>_cache - - - - - xpath expression to extract cache key from request message - - - - - output type of xpath expression to extract cache key from request message Default: text - - - - - - - - namespace defintions for keyxpath. must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code> definitions - - - + + + + + + + + - stylesheet to extract cache key from request message. Use in combination with cacheEmptyKeys to inhibit caching for certain groups of request messages + If <code>true</code>, messages sent are put in a SOAP envelope Default: false - + + + + + + + + + + + + + + + + + + + + - session key to use as input for transformation of request message to key by keyxpath or keystylesheet + If <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 - + + + - controls whether empty keys are used for caching. when set true, cache entries with empty keys can exist. Default: false + (Only for <code>synchronous=true</code>). Maximum time in ms to wait for a reply. 0 means no timeout. Default: 5000 - + + - xpath expression to extract value to be cached key from response message. Use in combination with cacheEmptyValues to inhibit caching for certain groups of response messages + Controls mode that messages are sent with Default: not set by application - - - + - - - namespace defintions for valuexpath. must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code> definitions - - - + + - stylesheet to extract value to be cached from response message + If <code>true</code>, messages sent are put in a SOAP envelope Default: false - + + + - session key to use as input for transformation of response message to cached value by valuexpath or valuestylesheet + SOAPAction string sent as message property - + + + + + + + + + + + + + + + - controls whether empty values will be cached. when set true, empty cache entries can exist for any key. Default: false + The transaction code that should be added in the header, must be 8 characters - - - + + + + + + + + + + - - - Domparser om AFM-XML berichten om te zetten in edifactberichten (voor de backoffice). - + - - - - - + + + + - + + + + + + - Sender to work with the Amazon S3 Filesystem. + ESB (Enterprise Service Bus) extension of JmsTransactionalStorage. + <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 - <code>FileAttribute.</code>. - This prefix will be not be part of the actual metadata property name. + 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> - The string value of these parameters will be used as value of the custom metadata attribute. + <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> - - + + - + - Sender to obtain information from and write to a CMIS application. - - <p> - When <code>action=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>&lt;cmis&gt; - &lt;id&gt;documentId&lt;/id&gt; - &lt;/cmis&gt;</code></pre> - </p> - <p> - When <code>action=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>&lt;cmis&gt; - &lt;id&gt;documentId&lt;/id&gt; - &lt;/cmis&gt;</code></pre> - </p> - <p> - When <code>action=create</code> the input (xml string) indicates document properties to set. This input is optional. - </p> - <p> - <b>Example:</b> - <pre><code>&lt;cmis&gt; - &lt;name&gt;Offerte&lt;/name&gt; - &lt;objectTypeId&gt;NNB_Geldlening&lt;/objectTypeId&gt; - &lt;mediaType&gt;application/pdf&lt;/mediaType&gt; - &lt;properties&gt; - &lt;property name=&quot;ArrivedAt&quot; type=&quot;datetime&quot; formatString=&quot;yyyy-MM-dd'T'HH:mm:ss.SSSz&quot;&gt;2014-11-27T16:43:01.268+0100&lt;/property&gt; - &lt;property name=&quot;ArrivedBy&quot;&gt;HDN&lt;/property&gt; - &lt;property name=&quot;DocumentType&quot;&gt;Geldlening&lt;/property&gt; - &lt;/properties&gt; - &lt;/cmis&gt;</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>&nbsp;</td></tr> - </table> - </p> - <p> - When <code>action=find</code> the input (xml string) indicates the query to perform. - </p> - <p> - <b>Example:</b> - <pre><code>&lt;query&gt; - &lt;statement&gt;select * from cmis:document&lt;/statement&gt; - &lt;maxItems&gt;10&lt;/maxItems&gt; - &lt;skipCount&gt;0&lt;/skipCount&gt; - &lt;searchAllVersions&gt;true&lt;/searchAllVersions&gt; - &lt;includeAllowableActions&gt;true&lt;/includeAllowableActions&gt; - &lt;/query</code></pre> - </p> - <p> - When <code>action=update</code> the input (xml string) indicates document properties to update. - </p> - <p> - <b>Example:</b> - <pre><code>&lt;cmis&gt; - &lt;id&gt;123456789&lt;/id&gt; - &lt;properties&gt; - &lt;property name=&quot;ArrivedAt&quot; type=&quot;datetime&quot; formatString=&quot;yyyy-MM-dd'T'HH:mm:ss.SSSz&quot;&gt;2014-11-27T16:43:01.268+0100&lt;/property&gt; - &lt;property name=&quot;ArrivedBy&quot;&gt;HDN&lt;/property&gt; - &lt;property name=&quot;DocumentType&quot;&gt;Geldlening&lt;/property&gt; - &lt;/properties&gt; - &lt;/cmis&gt;</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>&nbsp;</td></tr> - <tr><td>property</td><td>custom document property to update. See <code>action=create</code> for possible attributes</td><td>&nbsp;</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.<br><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</p> - - - - - - - - - - - - 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.<br><br><b>INFO</b><p>See DB2XMLWriter for ResultSet!</p><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</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> - - + + - + - FixedResultSender, same behaviour as FixedResultPipe, but now as a ISender. + 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. - - + + - - - Sender to send a message to another Frank! Adapter, or an external program running in the same JVM as the Frank!Framework. - <p> - Sends a message to another Frank!Framework-adapter in the same Frank!Framework instance, or an external program running in - the same JVM as the Frank!Framework. If the callee exits with an <code>&lt;Exit/&gt;</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 <code>exit.code</code> as forward name to the SenderPipe, provided that <code>exit.code</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> - A FrankSender makes a call to either an Adapter or an external program by setting the #scope. By default the scope is <code>ADAPTER</code>. - </p> - <p/> - - <h3>Configuration of the Adapter to be called</h3> - <p> - A call to another Adapter in the same Frank!Framework instance is preferably made using the combination - of a FrankSender configured with the name of the adapter. - </p> - <h4>Configuring FrankSender and Adapter</h4> - <ul> - <li>Define a SenderPipe with a FrankSender</li> - <li>Set the attribute <code>target</code> to <i>targetAdapterName</i></li> - <li>If the adapter is in another Configuration deployed in the same Frank!Framework instance, then set <code>target</code> to <code>targetConfigurationName/targetAdapterName</code> (note the slash-separator between Configuration name and Adapter name).</li> - </ul> - In the Adapter to be called: - <ul> - <li>The adapter does not need to have a receiver configured to be called from a FrankSender,</li> - <li>The adapter will run in the same transaction as the calling adapter,</li> - <li>If the called adapter does not to run in its own transaction, set the transaction attributes on the PipeLine attribute of this adapter - or on the SenderPipe that contains this <code>FrankSender</code>.</li> - </ul> - - <h4>Configuring FrankSender with FrankListener</h4> - <ul> - <li>Define a SenderPipe with a FrankSender</li> - <li>In the target adapter, define a org.frankframework.receivers.Receiver with a FrankListener</li> - <li>Give a unique name to the listener: FrankListener#setName(String). If the name is not set, the name of the Adapter will be used.</li> - <li>Set the #setScope(Scope) to <code>LISTENER</code> and the #setTarget(String) to the listener name as per previous point</li> - <li>If the listener is in a different configuration, prefix the listener name with the name of the configuration and a slash (<code>/</code>) as separator between configuration and listener name</li> - </ul> + + + + + + + + + + + + + + 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 Pipe + + + + + + + + + + + Timeout <i>in milliseconds</i> for receiving a message from the queue Default: 3000 + + + + + Regular 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 (?&lt;=&lt;party&gt;).*?(?=&lt;/party&gt;) will replace every + character between keys &lt;party&gt; and &lt;/party&gt; + <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: ALL + + + + + + + + + + + + + + + + + + Set 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</code>. + + + + + + + + + + + + + + + If set to <code>true</code>, the messages are stored compressed Default: true + + + + + + + + If set to <code>true</code>, the message is stored only if the MessageId is not present in the store yet. Default: false + + + + + + + + + + + + + + + Name of the table messages are stored in. Default: IBISSTORE + + + + + Name of the index, to be used in hints for query optimizer too (only for Oracle). Default: IX_IBISSTORE + + + + + + + + + + + The name of the column that contains the primary key of the table Default: MESSAGEKEY + + + + + The name of the column messageIds are stored in Default: MESSAGEID + + + + + The name of the column correlation-ids are stored in Default: CORRELATIONID + + + + + The name of the column message themselves are stored in Default: MESSAGE + + + + + The name of the column the timestamp is stored in Default: MESSAGEDATE + + + + + The name of the column comments are stored in Default: COMMENTS + + + + + The name of the column the timestamp for expiry is stored in Default: EXPIRYDATE + + + + + The name of the column labels are stored in Default: LABEL + + + + + Prefix to be prefixed on all database objects (tables, indices, sequences), e.g. to access a different Oracle schema + + + + + + + + + + Regular 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 (?&lt;=&lt;party&gt;).*?(?=&lt;/party&gt;) will replace every + character between keys &lt;party&gt; and &lt;/party&gt; + <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: ALL + + + + + + + + + + + + + + + + + + + + + + + + + + + + ESB (Enterprise Service Bus) extension of JmsTransactionalStorage. - <h4>Configuring FrankSender and Remote Application</h4> - <p> - <em>NB:</em> Please make sure that the IbisServiceDispatcher-1.4.jar or newer is present on the class path of the server. For more information, see: - </p> - <ul> - <li>Define a SenderPipe with a FrankSender</li> - <li>Set the attribute <code>scope</code> to either <code>JVM</code> for a Java application, or to <code>DLL</code> for code loaded from a DLL</li> - <li>Set the attribute <code>target</code> to the service-name the other application used to register itself</li> - </ul> <p> - In the other application: + Depending on the <code>type</code> of the <code>TransactionalStorage</code> + one of the following messages is sent: <ul> - <li>Implement the interface <code>nl.nn.adapterframework.dispatcher.RequestProcessor</code> from the IbisServiceDispatcher library</li> - <li>Register the instance with the <code>nl.nn.adapterframework.dispatcher.DispatcherManager</code> obtained via the <code>nl.nn.adapterframework.dispatcher.DispatcherManagerFactory</code></li> - <li>See the implementation code of the <code>JavaListener</code> in the Frank!Framework for an example</li> + <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> - See also the repository of the IbisServiceDispatcher: - <a href="https://github.com/frankframework/servicedispatcher">https://github.com/frankframework/servicedispatcher</a> - </p> - - <h4>Using FrankSender to call an adapter from Larva tests</h4> - <p> - You can configure a FrankSender in Larva property files to use the FrankSender to invoke an adapter to test. When doing this, keep the following in mind: - <ul> - <li>If you leave the default scope as <code>ADAPTER</code>, then the <code>target</code> property needs to have both configuration name and adapter name, separated by a <code>/</code> character</li> - <li>When scope is left as default, the receiver and JavaListener are skipped and no transaction is started unless it is set on the adapter's <code>PipeLine</code></li> - <li>If you do need a transaction and the adapter has a JavaListener that has org.frankframework.receivers.JavaListener#setServiceName(String) defined, you can use the FrankSender with scope <code>JVM</code> - and set the <code>target</code> attribute to the <code>serviceName</code> attribute of the <code>JavaListener</code>.</li> - </ul> - </p> - - <h3>Migrating Existing Configurations</h3> - <p> - When one adapter (named A) needs to call another adapter (named B) like a subroutine, you will usually have an IbisLocalSender or an IbisJavaSender - in adapter A, and a org.frankframework.receivers.JavaListener in adapter B. - </p> - <p> - <em>NB:</em> For the example it is assumed that all adapters are defined in the same configuration. - </p> - - <h4>Example of Existing Configuration</h4> - The existing configuration might look like this in the calling adapter: - <pre><code>&lt;module&gt; - &lt;adapter name=&quot;Adapter A&quot;&gt; - &lt;receiver name=&quot;Adapter A Receiver&quot;&gt; - &lt;listener name=&quot;Adapter A Listener&quot; - className=&quot;org.frankframework...&quot; etc/&gt; - &lt;/receiver&gt; - &lt;pipeline firstPipe=&quot;...&quot;&gt; - &lt;pipe name=&quot;send&quot; className=&quot;org.frankframework.pipes.SenderPipe&quot;&gt; - &lt;sender className=&quot;org.frankframework.senders.IbisJavaSender&quot; - serviceName=&quot;service-Adapter-B&quot; /&gt; - &lt;forward name=&quot;success&quot; path=&quot;...&quot; /&gt; - &lt;/pipe&gt; - &lt;/pipeline&gt; - &lt;/adapter&gt; - &lt;/module&gt;</code></pre> - - Or like using the modern XML XSD and an IbisLocalSender instead: - <pre><code>&lt;Module&gt; - &lt;Adapter name=&quot;Adapter A&quot;&gt; - &lt;Receiver name=&quot;Adapter A Receiver&quot;&gt; - ... Listener setup and other configuration - &lt;/Receiver&gt; - &lt;Pipeline&gt; - &lt;SenderPipe name=&quot;send&quot;&gt; - &lt;IbisLocalSender name=&quot;call Adapter B&quot; - javaListener=&quot;Adapter B Listener&quot;/&gt; - &lt;Forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; - &lt;/SenderPipe&gt; - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;/Module&gt;</code></pre> - - In the receiving adapter B the listener would have been configured like this: - <pre><code>&lt;Module&gt; - &lt;Adapter name=&quot;adapter B&quot;&gt; - &lt;Receiver name=&quot;Receiver B&quot;&gt; - &lt;JavaListener name=&quot;Adapter B Listener&quot; serviceName=&quot;service-Adapter-B&quot;/&gt; - &lt;/Receiver&gt; - &lt;Pipeline&gt; - ... - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;/Module&gt;</code></pre> - <p/> - - <h4>Rewritten Example Configuration With FrankSender</h4> - This example shows the most simple way of using the FrankSender to call another adapter with least amount of overhead. - - <pre><code>&lt;Module&gt; - &lt;Adapter name=&quot;Adapter A&quot;&gt; - &lt;Receiver name=&quot;Adapter A Receiver&quot;&gt; - ... Listener setup and other configuration - &lt;/Receiver&gt; - &lt;Pipeline&gt; - &lt;SenderPipe name=&quot;send&quot;&gt; - &lt;!-- when scope=&quot;ADAPTER&quot;, then target is directly the name of the adapter you want to call --&gt; - &lt;FrankSender name=&quot;call Adapter C&quot; - scope=&quot;ADAPTER&quot; - target=&quot;adapter B&quot; - /&gt; - &lt;Forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; - &lt;/SenderPipe&gt; - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;Adapter name=&quot;adapter B&quot;&gt; - &lt;!-- No receiver needed for FrankSender in this scenario --&gt; - &lt;Pipeline&gt; - ... Exits, Pipes etc - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;/Module&gt;</code></pre> - - <h4>Rewritten Example Configuration With FrankSender and FrankListener</h4> - This example shows why you might want to call the other adapter via the FrankListener. This adds a bit more overhead to the call - of the sub-adapter for the extra error-handling done by the target receiver. - - <pre><code>&lt;Module&gt; - &lt;Adapter name=&quot;Adapter A&quot;&gt; - &lt;Receiver name=&quot;Adapter A Receiver&quot;&gt; - ... Listener setup and other configuration - &lt;/Receiver&gt; - &lt;Pipeline&gt; - &lt;SenderPipe name=&quot;send&quot;&gt; - &lt;!-- when scope=&quot;LISTENER&quot;, then target is directly the name of the FrankListener in the adapter you want to call --&gt; - &lt;FrankSender - scope=&quot;LISTENER&quot; - target=&quot;Adapter B Listener&quot;/&gt; - &lt;Forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; - &lt;/SenderPipe&gt; - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;Adapter name=&quot;adapter B&quot;&gt; - &lt;!-- Messages will only be sent to the error storage if: - - The target receiver is not transactional, and has maxTries=&quot;0&quot;, or - - The target receiver is transaction, and the Sender is set up to retry sending on error - For internal adapters, sending / receiving with retries might not make sense so the example does not show that. - --&gt; - &lt;Receiver name=&quot;Receiver B&quot; maxRetries=&quot;0&quot; transactionAttribute=&quot;NotSupported&quot;&gt; - &lt;!-- Listener name is optional, defaults to Adapter name --&gt; - &lt;FrankListener name=&quot;Adapter B Listener&quot;/&gt; - &lt;!-- This adapter now has an error storage -- without Receiver and FrankListener the sub-adapter couldn't have that --&gt; - &lt;JdbcErrorStorage slotId=&quot;Adapter B - Errors&quot; /&gt; - &lt;/Receiver&gt; - &lt;!-- If transactions are required, set transaction-attribute on the Pipeline --&gt; - &lt;Pipeline transactionAttribute=&quot;RequiresNew&quot;&gt; - ... Exits, Pipes etc - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;/Module&gt;</code></pre> + <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> + - - + + - + - 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><br><br><b>INFO</b><p>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> + 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. - - + + - + + + + + + + + + + + + + + + + + + + + + + + - JMS sender which will add an IMS header to the message and call the MQ specific logic. - - <p>See JmsSender for configuration</p> + ErrorMessageFormatter that returns a fixed message with replacements. - - + + - + - Posts a message to another Frank!Framework-adapter or an application in the same JVM using IbisServiceDispatcher. - <p> - 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. - </p> - The IbisJavaSender is now considered to be legacy. The new way to call another adapter or java application from your own - adapter is by using the FrankSender. - </p> - <h4>configuring IbisJavaSender and JavaListener</h4> - <ul> - <li><em>NB:</em> Using IbisJavaSender to call another adapter is inefficient and therefore not recommended. It is much more efficient to use for this a FrankSender or IbisLocalSender.</li> - <li>Define a org.frankframework.pipes.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. For more information, see: - <a href="https://github.com/frankframework/servicedispatcher">https://github.com/frankframework/servicedispatcher</a> + ErrorMessageFormatter that returns a soap fault message. - - + + - + - Posts a message to another Frank!Framework-adapter in the same Frank!Framework instance. If the callee exits with an &lt;<code>exit</code>&gt; - 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> - The IbisLocalSender is now considered to be legacy. The new way to call another adapter from your own - adapter is by using the FrankSender. - </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 org.frankframework.receivers.Receiver with either a WebServiceListener - or a JavaListener. - </p> - - - <h3>Configuration of the Adapter to be called</h3> - A call to another Adapter in the same Frank!Framework 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 Frank!Framework-instance</li> - </ul> + Applies a XSLT-stylesheet to the standard error generated by an ErrorMessageFormatter. - <h4>configuring IbisLocalSender and WebServiceListener</h4> + If the transformation does not succeed, this 'standard' error message is returned and an exception is logged. - <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> + Hint: use <code>xpathExression="/errorMessage/@message"</code> for a single compact string as errormessage. - - + + - + + + + + + + + + + returned message + + + + + name of the file containing the result message + + + + + + + + + + + + + + + + + + + + + + + + + + + URL to the stylesheet used to transform the output of the standard ErrorMessageFormatter + + + + + xPathExpression to use for transformation + + + + + + + + + + + + + + + + + + + + + + + + + + + + - Requires the net.bankid.merchant.library V1.2.9 + 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>&nbsp;</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> - - + + - + - Implementation of sender that sends an IDoc to SAP. - N.B. The sending of the iDoc is committed right after the XA transaction is completed. + 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). + - - + + - + - Sender 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]</code>. - </p> + <code>Pipe</code> that validates the XML or JSON input message against a XML Schema and returns either XML or JSON. - - + + - + - This class sends messages with JMS. + Pipe that validates the input message against a JSON Schema. - - + + - + - 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. + 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> - - + + - + - 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: - <pre><code>&lt;sender - className=&quot;org.frankframework.ldap.LdapSender&quot; - ldapProviderURL=&quot;ldap://servername:389/o=ing&quot; - operation=&quot;read&quot; - attributesToReturn=&quot;givenName,sn,telephoneNumber&quot; &gt; - &lt;param name=&quot;entryName&quot; xpathExpression=&quot;entryName&quot; /&gt; - &lt;/sender&gt;</code></pre> - <br/> - - This may result in the following output: - <pre><code>&lt;ldap&gt; - &lt;entryName&gt;uid=srp,ou=people&lt;/entryName&gt; - &lt;attributes&gt; - &lt;attribute attrID=&quot;givenName&quot;&gt; - &lt;value&gt;Jan&lt;/value&gt; - &lt;/attribute&gt; - &lt;attribute attrID=&quot;telephoneNumber&quot;&gt; - &lt;value&gt;010 5131123&lt;/value&gt; - &lt;value&gt;06 23456064&lt;/value&gt; - &lt;/attribute&gt; - &lt;attribute attrID=&quot;sn&quot;&gt; - &lt;value&gt;Jansen&lt;/value&gt; - &lt;/attribute&gt; - &lt;/attributes&gt; - &lt;/ldap&gt;</code></pre> - <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/> - <pre><code>&lt;attributes&gt; - &lt;attribute&gt; - &lt;attribute name=&quot;employeeType&quot; value=&quot;Extern&quot;/&gt; - &lt;attribute name=&quot;roomNumber&quot; value=&quot;DP 2.13.025&quot;/&gt; - &lt;attribute name=&quot;departmentCode&quot; value=&quot;358000&quot;/&gt; - &lt;attribute name=&quot;organizationalHierarchy&quot;&gt; - &lt;item value=&quot;ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;item value=&quot;ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;item value=&quot;ou=000001,ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;/attribute&gt; - &lt;attribute name=&quot;givenName&quot; value=&quot;Gerrit&quot;/&gt; - &lt;/attributes&gt;</code></pre> - <br/> - Sample result of a <code>search</code> operation:<br/> - <pre><code>&lt;entries&gt; - &lt;entry name=&quot;uid=srp&quot;&gt; - &lt;attributes&gt; - &lt;attribute&gt; - &lt;attribute name=&quot;employeeType&quot; value=&quot;Extern&quot;/&gt; - &lt;attribute name=&quot;roomNumber&quot; value=&quot;DP 2.13.025&quot;/&gt; - &lt;attribute name=&quot;departmentCode&quot; value=&quot;358000&quot;/&gt; - &lt;attribute name=&quot;organizationalHierarchy&quot;&gt; - &lt;item value=&quot;ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;item value=&quot;ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;item value=&quot;ou=000001,ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;/attribute&gt; - &lt;attribute name=&quot;givenName&quot; value=&quot;Gerrit&quot;/&gt; - &lt;/attributes&gt; - &lt;/entry&gt; - &lt;entry&gt; .... &lt;/entry&gt; - ..... - &lt;/entries&gt;</code></pre> - <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 - <code>FileAttribute.</code>. - 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: - <pre><code>&lt;email&gt; - &lt;recipients&gt; - &lt;recipient type=&quot;to&quot;&gt;***@hotmail.com&lt;/recipient&gt; - &lt;recipient type=&quot;cc&quot;&gt;***@gmail.com&lt;/recipient&gt; - &lt;/recipients&gt; - &lt;from name=&quot;*** ***&quot;&gt;***@yahoo.com&lt;/from&gt; - &lt;subject&gt;This is the subject&lt;/subject&gt; - &lt;threadTopic&gt;subject&lt;/threadTopic&gt; - &lt;message&gt;This is the message&lt;/message&gt; - &lt;messageType&gt;text/plain&lt;/messageType&gt;&lt;!-- Optional --&gt; - &lt;messageBase64&gt;false&lt;/messageBase64&gt;&lt;!-- Optional --&gt; - &lt;charset&gt;UTF-8&lt;/charset&gt;&lt;!-- Optional --&gt; - &lt;attachments&gt; - &lt;attachment name=&quot;filename1.txt&quot;&gt;This is the first attachment&lt;/attachment&gt; - &lt;attachment name=&quot;filename2.pdf&quot; base64=&quot;true&quot;&gt;JVBERi0xLjQKCjIgMCBvYmoKPDwvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1...vSW5mbyA5IDAgUgo+PgpzdGFydHhyZWYKMzQxNDY2CiUlRU9GCg==&lt;/attachment&gt; - &lt;attachment name=&quot;filename3.pdf&quot; url=&quot;file:/c:/filename3.pdf&quot;/&gt; - &lt;attachment name=&quot;filename4.pdf&quot; sessionKey=&quot;fileContent&quot;/&gt; - &lt;/attachments&gt;&lt;!-- Optional --&gt; - &lt;/email&gt;</code></pre> - </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: - <pre><code>&lt;message&gt;&lt;![CDATA[&lt;h1&gt;This is a HtmlMessage&lt;/h1&gt;]]&gt;&lt;/message&gt;</code></pre> - </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: - <pre><code>&lt;SenderPipe name=&quot;Send&quot;&gt; - &lt;MessageStoreSender - slotId=&quot;${instance.name}/TestMessageStore&quot; - onlyStoreWhenMessageIdUnique=&quot;false&quot; /&gt; - &lt;/SenderPipe&gt;</code></pre> - - - - - - - - - - - - Sender to perform action on a MongoDB database. + 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. - - + + - + - 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. + Pipe that validates the input message against an XML Schema. - - + + - + - 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 access token used to authenticate with Akamai, you can use the authalias property. The username - represents the nonce and the password the access token.</p> + <code>Pipe</code> that checks the well-formedness of the input message. + If <code>root</code> is given then this is also checked. - - + + - - - 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>&lt;SenderPipe&gt; - &lt;ReconnectSenderWrapper&gt; - &lt;EchoSender myAttribute=&quot;myValue&quot; /&gt; - &lt;/ReconnectSenderWrapper&gt; - &lt;/SenderPipe&gt;</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.<br><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</p> - - - - - - - - - - - - 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. - - - - - - - - - - - - Implementation of sender that calls a SAP RFC-function. - - N.B. If no requestFieldIndex or requestFieldName is specified, input is converted from xml; - If no replyFieldIndex or replyFieldName is specified, output is converted to xml. - - - - - - - - - - - - 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.xml - - - - - - - - - - - - Series 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>?</code>, should - have a corresponding IParameter entry. Output parameters should have <code>mode=&quot;OUTPUT&quot;</code>, or - <code>mode=&quot;INOUT&quot;</code> 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> - <pre><code>&lt;resultset&gt; - &lt;result param=&quot;r1&quot; type=&quot;STRING&quot;&gt;MESSAGE-CONTENTS&lt;/result&gt; - &lt;result param=&quot;r2&quot; type=&quot;STRING&quot;&gt;E&lt;/result&gt; - &lt;/resultset&gt;</code></pre> - - <h4>Example with Resultset and Simple Output Parameters</h4> - <pre><code>&lt;resultset&gt; - &lt;result resultNr=&quot;1&quot;&gt; - &lt;fielddefinition&gt; - &lt;field name=&quot;FIELDNAME&quot; - type=&quot;columnType&quot; - columnDisplaySize=&quot;&quot; - precision=&quot;&quot; - scale=&quot;&quot; - isCurrency=&quot;&quot; - columnTypeName=&quot;&quot; - columnClassName=&quot;&quot;/&gt; - &lt;field ...../&gt; - &lt;/fielddefinition&gt; - &lt;rowset&gt; - &lt;row number=&quot;0&quot;&gt; - &lt;field name=&quot;TKEY&quot;&gt;MSG-ID&lt;/field&gt; - &lt;field name=&quot;TCHAR&quot;&gt;E&lt;/field&gt; - &lt;field name=&quot;TMESSAGE&quot;&gt;MESSAGE-CONTENTS&lt;/field&gt; - &lt;field name=&quot;TCLOB&quot; null=&quot;true&quot;/&gt; - &lt;field name=&quot;TBLOB&quot; null=&quot;true&quot;/&gt; - &lt;/row&gt; - &lt;row number=&quot;1&quot; ...../&gt; - &lt;/rowset&gt; - &lt;/result&gt; - &lt;result param=&quot;count&quot; type=&quot;INTEGER&quot;&gt;5&lt;/result&gt; - &lt;/resultset&gt;</code></pre> - - <h4>Example with Simple and Cursor Output Parameters</h4> - <pre><code>&lt;resultset&gt; - &lt;result param=&quot;count&quot; type=&quot;INTEGER&quot;&gt;5&lt;/result&gt; - &lt;result param=&quot;cursor1&quot; type=&quot;LIST&quot;&gt; - &lt;fielddefinition&gt; - &lt;field name=&quot;FIELDNAME&quot; - type=&quot;columnType&quot; - columnDisplaySize=&quot;&quot; - precision=&quot;&quot; - scale=&quot;&quot; - isCurrency=&quot;&quot; - columnTypeName=&quot;&quot; - columnClassName=&quot;&quot;/&gt; - &lt;field ...../&gt; - &lt;/fielddefinition&gt; - &lt;rowset&gt; - &lt;row number=&quot;0&quot;&gt; - &lt;field name=&quot;TKEY&quot;&gt;MSG-ID&lt;/field&gt; - &lt;field name=&quot;TCHAR&quot;&gt;E&lt;/field&gt; - &lt;field name=&quot;TMESSAGE&quot;&gt;MESSAGE-CONTENTS&lt;/field&gt; - &lt;field name=&quot;TCLOB&quot; null=&quot;true&quot;/&gt; - &lt;field name=&quot;TBLOB&quot; null=&quot;true&quot;/&gt; - &lt;/row&gt; - &lt;row number=&quot;1&quot; ..... /&gt; - &lt;/rowset&gt; - &lt;/result&gt; - &lt;/resultset&gt;</code></pre> - </p><br><br><b>INFO</b><p>Support for stored procedures is currently experimental and changes in the currently produced output-format are expected.</p><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</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> - <pre><code>&lt;browse&gt; - &lt;jmsRealm&gt;qcf&lt;/jmsRealm&gt; - &lt;destinationName&gt;jms/GetPolicyDetailsRequest&lt;/destinationName&gt; - &lt;destinationType&gt;QUEUE&lt;/destinationType&gt; - &lt;/browse&gt;</code></pre> - </p> - <p> - <b>example (browse output):</b> - <pre><code>&lt;result&gt; - &lt;items count=&quot;2&quot;&gt; - &lt;item&gt; - &lt;timestamp&gt;Thu Nov 20 13:36:31 CET 2014&lt;/timestamp&gt; - &lt;messageId&gt;ID:LPAB00000003980-61959-1416486781822-3:5:33:1:1&lt;/messageId&gt; - &lt;correlationId&gt;...&lt;/correlationId&gt; - &lt;message&gt;&lt;![CDATA[...]]&gt;&lt;/message&gt; - &lt;/item&gt; - &lt;item&gt; - &lt;timestamp&gt;Thu Dec 12 11:59:22 CET 2014&lt;/timestamp&gt; - &lt;messageId&gt;ID:LPAB00000003980-58359-1721486799722-3:4:19:1:1&lt;/messageId&gt; - &lt;correlationId&gt;...&lt;/correlationId&gt; - &lt;message&gt;&lt;![CDATA[...]]&gt;&lt;/message&gt; - &lt;/item&gt; - &lt;/items&gt; - &lt;/result&gt;</code></pre> - </p> - - <p> - <b>example (remove output):</b> - <pre><code>&lt;result&gt; - &lt;itemsRemoved&gt;2&lt;/itemsRemoved&gt; - &lt;/result&gt;</code></pre> - - - - - - - - - - - - QuerySender that transforms the input message to a query. - <br/> - <pre><code>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] - - alter - sequenceName - - startWith - - sql - type [0..1] one of {select;ddl;other}, other by default - - query</code></pre> - <br/><br><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</p> - - - - - - - - - - - - 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 account - - - - - Secret key to access to the AWS resources owned by the account - - - - - Alias used to obtain AWS credentials - - - - - Setting this flag will result in disabling chunked encoding for all requests. Default: false - - - - - Option to enable or disable the usage of multi-region access point ARNs. Default: false - - - - - Name of the AWS region that the client is using. Default: eu-west-1 - - - - - Name of the bucket to access. The bucketName can also be specified by prefixing it to the object name, separated from it by <code>|</code> - - - - - Proxy host - - - - - Proxy port - - - - - The 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 S3 Default: 50 - - - - - - - - - - - - - - - - name of the sender - - - - - - - - - If parameter [<code>action</code>] 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 <code>filename</code> is used. If that is not set either, the input is used - - - - - Destination for <code>move</code>, <code>copy</code> or <code>rename</code>. If not set, the parameter <code>destination</code> is used. If that is not set either, the input is used - - - - - Folder that is scanned for files when action=<code>list</code>. When not set, the root is scanned - - - - - If <code>true</code>: if a non-existing folder is part of the fileName, it will be created. Default: false - - - - - If set <code>true</code>, for actions <code>create</code>, <code>write</code>, <code>move</code>, <code>copy</code> or <code>rename</code>, the destination file is overwritten if it already exists Default: false - - - - - For action=<code>append</code>: 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: 0 - - - - - For action=<code>append</code>: 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: 0 - - - - - For the actions <code>write</code> and <code>append</code>, with rotateSize>0: the number of backup files that is kept. The inputFolder must point to the directory where the file resides Default: 0 - - - - - Filter of files to look for in inputFolder e.g. '*.inp'. Works with actions <code>move</code>, <code>copy</code>, <code>delete</code> and <code>list</code> - - - - - Filter of files to be excluded when looking in inputFolder. Works with actions <code>move</code>, <code>copy</code>, <code>delete</code> and <code>list</code> - - - - - If 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 <code>write</code> and <code>append</code> Default: false - - - - - Charset to be used for <code>read</code> and <code>write</code> action - - - - - If set to true then the folder will be deleted if it is empty after processing the action. Works with actions <code>delete</code>, <code>readDelete</code> and <code>move</code> - - - - - Sets the outputFormat. This ignored when reading a file. Is applicable to actions which return information about file(s). Relevant for: - 'info', 'list', 'append', 'move', 'delete' and 'copy' actions. Default: XML - - - - - - - - Filter for action <code>list</code>. Specify <code>FILES_ONLY</code>, <code>FOLDERS_ONLY</code> or <code>FILES_AND_FOLDERS</code>. Default: FILES_ONLY - - - - - - - - - - - - - - - - - - - Specifies action to perform - - - - - - - - The maximum number of concurrent connections Default: 10 - - - - - READ_TIMEOUT timeout in MS. - Defaults to 10000, inherited from HttpSender#setTimeout. Default: 10000 - - - - - URL to connect to - - - - - Repository ID - - - - - Alias used to obtain credentials for authentication to host - - - - - Username used in authentication to host - - - - - Password used in authentication to host - - - - - BindingType CMIS protocol to use - - - - - - - - If <code>action=create</code> the sessionKey that contains the file to use. If <code>action=get</code> and <code>getProperties=true</code> the sessionKey to store the result in - - - - - If <code>action=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 used - - - - - If <code>action=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=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=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=create</code>). If true, the document is created in the root folder of the repository. Otherwise the document is created in the repository Default: true - - - - - If true, the session is not closed at the end and it will be used in the next call Default: true - - - - - Override entrypoint WSDL by reading it from the classpath, overrides url attribute - - - - - Resource url to keystore or certificate. If none specified, the JVMs default keystore will be used. - - - - - Type of keystore Default: pkcs12 - - - - - - - - Authentication alias used to obtain keystore password - - - - - Default password to access keystore - - - - - Alias to obtain specific certificate or key in keystore - - - - - Authentication 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 algorithm - - - - - Resource url to truststore. If none specified, the JVMs default truststore will be used. - - - - - Type of truststore Default: jks - - - - - - - - Authentication alias used to obtain truststore password - - - - - Default password to access truststore - - - - - Trust manager algorithm. Can be left empty to use the servers default algorithm - - - - - If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer. Note: This attribute is unsafe and should not be used in a production environment. Default: false - - - - - If <code>true</code>, self signed certificates are accepted. Note: This attribute is unsafe and should not be used in a production environment. Default: false - - - - - If <code>true</code>, CertificateExpiredExceptions are ignored. Note: This attribute is unsafe and should not be used in a production environment. Default: false - - - - - Proxy host url - - - - - Proxy host port Default: 80 - - - - - Alias used to obtain credentials for authentication to proxy - - - - - Proxy Username - - - - - Proxy Password - - - - - - - - - - - - - - - - The command to be executed. Note: Executing a command in WAS requires &lt;&lt;ALL FILES&gt;&gt; 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: 0 - - - - - In case the command that will be executed contains arguments then this flag should be set to true Default: false - - - - - - - - - - - - - - - The 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: 0 - - - - - - - - - - - - Type of query to be executed Default: OTHER - - - - - - - - - - The maximum number of rows to be returned from the output of <code>select</code> queries, -1 means unlimited rows Default: -1 - - - - - The 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: 1 - - - - - - - Comma 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 dialect - - - - - When 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: false - - - - - when set and >=0, ' FOR UPDATE WAIT #' is used instead of ' FOR UPDATE NOWAIT SKIP LOCKED' Default: -1 - - - - - - Only for querytype 'updateBlob': column that contains the BLOB to be updated Default: 1 - - - - - For 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 to - - - - - controls whether blobdata is stored compressed in the database Default: true - - - - - controls 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 case - - - - - Controls automatically whether blobdata is stored compressed and/or serialized in the database Default: false - - - - - Only for querytype 'updateClob': column that contains the CLOB to be updated Default: 1 - - - - - For 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 to - - - - - - - If 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: false - - - - - - - - - - - - - - - - - - hack to allow to introduce a correlationid Default: true - - - - - - - - - - - - - - - - protocol of ESB service to be called - - - - - - - - receiver 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 application - - - - - - - - if messageProtocol=<code>RR</code> then <code>replyTimeout</code> defaults to <code>timeout</code> Default: 5000 - - - - - if messageProtocol=<code>RR</code> then <code>synchronous</code> defaults to <code>true</code> Default: false - - - - - if 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: false - - - - - - - - - - - - - - - - - - - - - - - - If <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=true</code>). Maximum time in ms to wait for a reply. 0 means no timeout. Default: 5000 - - - - - - Controls mode that messages are sent with Default: not set by application - - - - - - - - - If <code>true</code>, messages sent are put in a SOAP envelope Default: false - - - - - - - SOAPAction string sent as message property - - - - - - - - - - - - - - - - - - - The 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 autodiscovery - - - - - Client 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 Secrets - - - - - Tenant 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 used - - - - - If empty, all mails are retrieved. If set to <code>NDR</code> only Non-Delivery Report mails ('bounces') are retrieved - - - - - Comma separated list of fields to try as response address Default: <code>replyTo,from,sender,Return-Path</code> - - - - - proxy host - - - - - proxy port Default: 8080 - - - - - proxy username - - - - - proxy password - - - - - proxy authAlias - - - - - proxy domain - - - - - Separator character used when working with multiple mailboxes, specified before the separator in the object name <code>test@organisation.com|My sub folder</code> or <code>test@organisation.com|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: pkcs12 - - - - - - - - Authentication alias used to obtain keystore password - - - - - Default password to access keystore - - - - - Key manager algorithm. Can be left empty to use the servers default algorithm - - - - - Alias to obtain specific certificate or key in keystore - - - - - Authentication 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: jks - - - - - - - - Authentication alias used to obtain truststore password - - - - - Default password to access truststore - - - - - Trust manager algorithm. Can be left empty to use the servers default algorithm - - - - - If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer Default: false - - - - - If <code>true</code>, self signed certificates are accepted Default: false - - - - - If <code>true</code>, CertificateExpiredExceptions are ignored Default: false - - - - - - - - - - - - - - - - - - - - - The SQL query text to be executed each time sendMessage() is called - - - - - - - - - - - - - - - - - should values between ${ and } be resolved from the pipelinesession Default: false - - - - - Name of the file containing the result message - - - - - returned message - - - - - - - - - - - - - - - - - - - Synchronous or Asynchronous execution of the call to other adapter or system. - <br/> - Set to <code>false</code> to make the call asynchronously. This means that the current adapter - continues with the next pipeline and the result of the sub-adapter that was called, or other system that was called, - is ignored. Instead, the input message will be returned as the result message. Default: true - - - - - Scope decides if the FrankSender calls another adapter, or another Java program running in the same JVM. - <br/> - It is possible to set this via a parameter. If the parameter is defined but the value at runtime - is empty, then the value set via this attribute will be used as default. Default: ADAPTER - - - - - - - - Target: service-name of service in other application that should be called, or name of adapter to be called. - If the adapter is in another configuration, prefix the adapter name with the name of that configuration and a slash ("<code>/</code>"). - <br/> - It is possible to set a target at runtime via a parameter. - <br/> - If a parameter with name <code>target</code> exists but has no value, then the target configured - via the attribute will be used as a default. - - - - - 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. - - - - - - - - - - - - - - - - pathname of the file or directory to list. Default: Home folder of the ftp user - - - - - Name or ip address of remote host - - - - - Port number of remote host Default: 21 - - - - - Name of the alias to obtain credentials to authenticatie on remote server - - - - - Name of the user to authenticatie on remote server - - - - - Password to authenticatie on remote server - - - - - Proxy hostname - - - - - Proxy port Default: 1080 - - - - - FTP protocol to use Default: FTP - - - - - - - - - - - - - If <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 Default: false - - - - - (ftps) If <code>true</code>, self signed certificates are accepted Default: false - - - - - (ftps) If <code>true</code>, CertificateExpiredExceptions are ignored Default: false - - - - - Sets the <code>Data Channel Protection Level</code>. Default: C - - - - - - - - - - - - - - - - - - - If <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=POST</code> and <code>postType=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 content - - - - - If set and <code>methodType=POST</code> and <code>paramsInUrl=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: false - - - - - If <code>true</code>, the input will be added to the URL for <code>methodType=GET</code>, or for <code>methodType=POST</code>, <code>PUT</code> or - <code>PATCH</code> if <code>postType=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 response - - - - - - - The functional name of the object. - - - - - - - - Timeout in ms of obtaining a connection/result. Default: 10000 - - - - - - - Authentication alias used for authentication to the host - - - - - Username used for authentication to the host - - - - - Password used for authentication to the host - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Timeout in ms of obtaining a connection/result. Default: 10000 - - - - - - - Authentication alias used for authentication to the host - - - - - Username used for authentication to the host - - - - - Password used for authentication to the host - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The transaction code that should be added in the header, must be 8 characters - - - - - - - - - - - - - - - - ServiceName 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 classpath - - - - - - - - - - - - - - - - Name 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 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. - - - - - If set <code>false</code>, the call is made asynchronously. This implies <code>isolated=true</code> Default: true - - - - - If <code>true</code>, the call is made in a separate thread, possibly using separate transaction Default: false - - - - - If <code>true</code>, the sender waits upon open until the called JavaListener is opened Default: true - - - - - Maximum time (in seconds) the sender waits for the listener to start. A value of -1 indicates to wait indefinitely Default: 60 - - - - - If set <code>false</code>, the xml-string \"&lt;error&gt;could not find JavaListener [...]&lt;/error&gt;\" is returned instead of throwing a senderexception Default: true - - - - - - - - - - - - - - - - - - - - - This 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 certificates - - - - - The password used to access the keystore - - - - - The AuthAlias used to access the keystore - - - - - This 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 .pfx - - - - - In case the merchant certificate has been password protected - - - - - In case the merchant certificate has been password protected - - - - - 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 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 protected - - - - - In case the SAML certificate has been password protected - - - - - - - - - - - Load 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 functions - - - - - Name of the parameter used to indicate the name of the SapSystem used by this object if the attribute <code>sapSystemName</code> is empty Default: sapSystemName - - - - - - - - - - - - - - - - The hostname of the IMAP server - - - - - The port of the IMAP server Default: 993 - - - - - Alias 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 used - - - - - Comma separated list of fields to try as response address Default: <code>replyTo,from,sender,Return-Path</code> - - - - - - - - - - - - - - - - - - - - - - - - - - - the name of the javascript file containing the functions to run - - - - - the name of the javascript function that will be called (first) Default: main - - - - - the name of the JavaScript engine to use. Default: J2V8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - If set, input is taken from this session key, instead of regular input - - - - - If set, this fixed value is taken as input, instead of regular input - - - - - If set <code>true</code>, the input of a pipe is restored before processing the next one Default: false - - - - - If set, the result is stored under this session key - - - - - If set, the input is stored under this session key - - - - - - - - - - - - - - - - When <code>true</code>, the xml result of the transformation is converted back to json Default: true - - - - - Namespace 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/json - - - - - - - - If 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.default - - - - - Location of stylesheet to apply to the input message - - - - - Session key to retrieve stylesheet location. Overrides stylesheetName or xpathExpression attribute - - - - - Size of cache of stylesheets retrieved from styleSheetNameSessionKey Default: 100 - - - - - Alternatively: XPath-expression to create stylesheet from - - - - - Omit 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 stylesheet - - - - - If 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 stylesheet - - - - - For xpathExpression only Default: text - - - - - - - - If 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 stylesheet - - - - - If set <code>true</code> namespaces (and prefixes) in the input message are removed before transformation Default: false - - - - - If 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: false - - - - - If set <code>true</code> empty tags in the output are removed after transformation Default: false - - - - - 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: 0 - - - - - - - - - - - - - - If 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.default - - - - - Location of stylesheet to apply to the input message - - - - - Session key to retrieve stylesheet location. Overrides stylesheetName or xpathExpression attribute - - - - - Size of cache of stylesheets retrieved from styleSheetNameSessionKey Default: 100 - - - - - Alternatively: XPath-expression to create stylesheet from - - - - - Omit 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 stylesheet - - - - - If 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 stylesheet - - - - - Namespace 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 namespace - - - - - For xpathExpression only Default: text - - - - - - - - If 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 stylesheet - - - - - If set <code>true</code> namespaces (and prefixes) in the input message are removed before transformation Default: false - - - - - If 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: false - - - - - If set <code>true</code> empty tags in the output are removed after transformation Default: false - - - - - 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: 0 - - - - - - - - - - - - - - - - - - - - - - Specifies LDAP operation to perform Default: read - - - - - - - - URL 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: attribute - - - - - - - - Comma 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 otherwise - - - - - Specifies the time (in ms) that is spent searching for results for operation search Default: 20000 - - - - - Key of session variable used to store cause of errors Default: errorReason - - - - - The maximum number of entries to be returned by a search query, or <code>0</code> for unlimited Default: 0 - - - - - When <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 '&lt;ldapresult&gt;object not found&lt;/ldapresult&gt;' is returned instead of the PartialResultException 'unprocessed continuation reference(s)' Default: false - - - - - - - - - - - - - - - - Path 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 used - - - - - Whether the LocalFileSystem tries to create the root folder if it doesn't exist yet. Default: false - - - - - - - - - - - - - - - - category under which messages are logged Default: name of the sender - - - - - level on which messages are logged Default: info - - - - - - - - - - - - - - - - - - - - - Name of the SMTP-host by which the messages are to be send - - - - - Port of the SMTP-host by which the messages are to be send Default: 25 - - - - - When set to true, we ensure TLS is being used Default: false - - - - - - - - - - - authAlias used to obtain credentials for authentication - - - - - - password of userid - - - - - - - Timeout <i>in milliseconds</i> for socket connection timeout and socket i/o timeouts Default: 20000 - - - - - - - - - - - - - - - - - - - - - - - - - - Comma 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: true - - - - - - - - - - - - - - - Set 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</code>. - - - - - - - - - - - - - - - If set to <code>true</code>, the messages are stored compressed Default: true - - - - - - - - If set to <code>true</code>, the message is stored only if the MessageId is not present in the store yet. Default: false - - - - - - - - - - - - - - - Name of the table messages are stored in. Default: IBISSTORE - - - - - Name of the index, to be used in hints for query optimizer too (only for Oracle). Default: IX_IBISSTORE - - - - - - - - - - - The name of the column that contains the primary key of the table Default: MESSAGEKEY - - - - - The name of the column messageIds are stored in Default: MESSAGEID - - - - - The name of the column correlation-ids are stored in Default: CORRELATIONID - - - - - The name of the column message themselves are stored in Default: MESSAGE - - - - - The name of the column the timestamp is stored in Default: MESSAGEDATE - - - - - The name of the column comments are stored in Default: COMMENTS - - - - - The name of the column the timestamp for expiry is stored in Default: EXPIRYDATE - - - - - The name of the column labels are stored in Default: LABEL - - - - - Prefix to be prefixed on all database objects (tables, indices, sequences), e.g. to access a different Oracle schema - - - - - - - - - - Regular 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 (?&lt;=&lt;party&gt;).*?(?=&lt;/party&gt;) will replace every - character between keys &lt;party&gt; and &lt;/party&gt; - <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: ALL - - - - - - - - - - - - - - - - - - - The MongoDB datasource Default: <code>mongodb.datasource.default</code> - - - - - Database to connect to. Can be overridden by parameter <code>database</code> - - - - - Collection to act upon. Can be overridden by parameter <code>collection</code> - - - - - Action - - - - - - - - Filter. Can contain references to parameters between <code>?{</code> and <code>}</code>. Can be overridden by parameter <code>filter</code> - - - - - Limit to number of results returned. A value of 0 means 'no limit'. Can be overridden by parameter <code>limit</code>. Default: 0 - - - - - Only for find operation: return only the count and not the full document(s) Default: false - - - - - OutputFormat Default: JSON - - - - - - - - Format 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 used - - - - - - - - At the time of writing, NetStorage only supports version 1 Default: 1 - - - - - NetStorage CP Code of the storage group - - - - - The destination URL for the Akamai NetStorage. (Only the hostname, without CpCode; eq. xyz-nsu.akamaihd.net) - - - - - Login is done via a Nonce and AccessToken - - - - - Version to validate queries made to NetStorage backend. Default: 5 - - - - - Login is done via a Nonce and AccessToken - - - - - Root 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 response - - - - - - - The functional name of the object. - - - - - Timeout in ms of obtaining a connection/result. Default: 10000 - - - - - - - Username used for authentication to the host - - - - - Password used for authentication to the host - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Set the upper limit to the amount of concurrent threads that can be run simultaneously. Use 0 to disable. Default: 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - reload the configuration regardless of the version Default: false - - - - - - - - - - - - - - - - type of the optional status field which is set after the row is written to the file: timestamp - - - - - Key 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: false - - - - - If set (and &gt;=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 processed - - - - - - - - - - - - - - - - The destination, aka smb://xxx/yyy share - - - - - The SMB share username - - - - - The SMB share password - - - - - Alias used to obtain credentials for the SMB share - - - - - logon/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: false - - - - - controls whether hidden files are seen or not Default: false - - - - - - - - - - - - - - - - Hostname of the SMB share. - - - - - Port to connect to. Default: 445 - - - - - Type 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: SPNEGO - - - - - - - - alias used to obtain credentials for the smb share - - - - - the smb share username - - - - - the smb share password - - - - - NTLM 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: false - - - - - Name of the RFC-function to be called in the SAP system - - - - - Name of the parameter used to obtain the functionName from if the attribute <code>functionName</code> is empty Default: functionName - - - - - - - - - - - - - - - - expression that generates the cron trigger - - - - - job 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 fires - - - - - - - - - - - - - - - - Timeout in ms of obtaining a connection/result. Default: 10000 - - - - - The maximum number of concurrent connections Default: 10 - - - - - The maximum number of times the execution is retried Default: 1 (for repeatable messages) else 0 - - - - - Proxy host - - - - - Proxy port Default: 80 - - - - - Alias used to obtain credentials for authentication to proxy - - - - - Proxy username - - - - - Proxy password - - - - - Proxy realm - - - - - resource URL to keystore or certificate to be used for authentication. If none specified, the JVMs default keystore will be used. - - - - - Type of keystore Default: pkcs12 - - - - - - - - Authentication alias used to obtain keystore password - - - - - Default password to access keystore - - - - - Alias to obtain specific certificate or key in keystore - - - - - Authentication 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 algorithm - - - - - Resource URL to truststore to be used for authenticating peer. If none specified, the JVMs default truststore will be used. - - - - - Type of truststore Default: jks - - - - - - - - Authentication alias used to obtain truststore password - - - - - Default password to access truststore - - - - - Trust manager algorithm. Can be left empty to use the servers default algorithm - - - - - If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer Default: false - - - - - If <code>true</code>, self signed certificates are accepted Default: false - - - - - If <code>true</code>, CertificateExpiredExceptions are ignored Default: false - - - - - If <code>true</code>, a redirect request will be honoured, e.g. to switch to HTTPS Default: true - - - - - Controls whether connections checked to be stale, i.e. appear open, but are not. Default: true - - - - - Used when <code>staleChecking</code> is <code>true</code>. Timeout after which an idle connection will be validated before being used. Default: 5000 ms - - - - - Secure socket protocol (such as 'TLSv1.2') to use when a SSLContext object is generated. Default: TLSv1.2 - - - - - - - - authAlias used to obtain credentials for authentication - - - - - - password of userid - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Path of the file or directory to start working. Default: Home folder of the sftp user - - - - - Name or ip address of remote host - - - - - Port number of remote host Default: 21 - - - - - Name of the alias to obtain credentials to authenticatie on remote server - - - - - Name of the user to authenticatie on remote server - - - - - Password to authenticatie on remote server - - - - - Proxy hostname - - - - - Proxy port Default: 1080 - - - - - alias to obtain credentials to authenticate on proxy - - - - - Default user name in case proxy requires authentication - - - - - Default password in case proxy requires authentication - - - - - Transport type in case of sftp Default: SOCKS5 - - - - - - - - Optional preferred encryption from client to server for sftp protocol - - - - - Optional preferred encryption from server to client for sftp protocol - - - - - Path to private key file for sftp authentication - - - - - Name of the alias to obtain credentials for passphrase of private key file - - - - - Passphrase of private key file - - - - - Path to file with knownhosts - - - - - Verify the hosts againt the knownhosts file. Default: true - - - - - - - - - - - - - - - - Name of the sender that is considered that is considered to be the golden standard, i.e. the source of truth. Default: the first sender specified - - - - - The sender name which will process the results Default: the last sender specified - - - - - If 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: false - - - - - - - - - - - - - - - - A 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: OTHER - - - - - - - - - - - - - - - - - - - - If set, the SQL dialect in which the queries are written and should be translated from to the actual SQL dialect - - - - - - - - - - - - - - - - - - when <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: true - - - - - the soapactionuri to be set in the requestheader - - - - - parameter to obtain the soapactionuri - - - - - the encodingstyle to be set in the messageheader - - - - - controls whether soap faults generated by the application generate an exception, or are treated as 'normal' messages Default: true - - - - - 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 - - - - - parameter to obtain the servicenamespace - - - - - namespace 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>-definitions - - - - - username used to obtain credentials for authentication to web services security - - - - - password used to obtain credentials for authentication to web services security - - - - - alias used to obtain credentials for authentication to web services security - - - - - when 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 response - - - - - - - The functional name of the object. - - - - - Timeout in ms of obtaining a connection/result. Default: 10000 - - - - - - - Authentication alias used for authentication to the host - - - - - Username used for authentication to the host - - - - - Password used for authentication to the host - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - one of create, append or replace - - - - - - - - remote directory is prefixed witht the remote file - - - - - - - - - - characterset conversion - - - - - - - - - - - - - name of logfile for xcomtcp to be used - - - - - password of user on remote system - - - - - port of remote host - - - - - set queue off or on - - - - - hostname or tcpip adres of remote host - - - - - set between 0 (no trace) and 10 - - - - - set truncation off or on - - - - - loginname of user on remote system - - - - - remote file to create. if empty, the name is equal to the local file - - - - - directory in which to run the xcomtcp command - - - - - path to xcomtcp command - - - - - - name of the alias to obtain credentials to authenticatie on remote server - - - - - - - - - - - - - - - - Full pathname to the XFB script to be executed to transfer the file - - - - - - - - - When 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: false - - - - - If set: key of session variable to store reasons of mis-validation in Default: failureReason - - - - - Like <code>reasonSessionKey</code> but stores reasons in xml format and more extensive Default: xmlFailureReason - - - - - If 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: false - - - - - Characterset used for reading file, only used when <code>validateFile</code> is <code>true</code> Default: utf-8 - - - - - If 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 <code>XSD_VALIDATION_WARNINGS_SUPPRESS_KEY</code>, <code>XSD_VALIDATION_ERROR_SUPPRESS_KEY</code> and <code>XSD_VALIDATION_FATAL_ERROR_SUPPRESS_KEY</code> Default: true - - - - - Ignore namespaces in the input message which are unknown Default: true when <code>schema</code> or <code>noNamespaceSchemaLocation</code> is used, false otherwise - - - - - If set <code>true</code>, the number for caching validators in appConstants is ignored and no caching is done (for this validator only) Default: false - - - - - If 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: collection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Domparser 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 - <code>FileAttribute.</code>. - 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=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>&lt;cmis&gt; - &lt;id&gt;documentId&lt;/id&gt; - &lt;/cmis&gt;</code></pre> - </p> - <p> - When <code>action=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>&lt;cmis&gt; - &lt;id&gt;documentId&lt;/id&gt; - &lt;/cmis&gt;</code></pre> - </p> - <p> - When <code>action=create</code> the input (xml string) indicates document properties to set. This input is optional. - </p> - <p> - <b>Example:</b> - <pre><code>&lt;cmis&gt; - &lt;name&gt;Offerte&lt;/name&gt; - &lt;objectTypeId&gt;NNB_Geldlening&lt;/objectTypeId&gt; - &lt;mediaType&gt;application/pdf&lt;/mediaType&gt; - &lt;properties&gt; - &lt;property name=&quot;ArrivedAt&quot; type=&quot;datetime&quot; formatString=&quot;yyyy-MM-dd'T'HH:mm:ss.SSSz&quot;&gt;2014-11-27T16:43:01.268+0100&lt;/property&gt; - &lt;property name=&quot;ArrivedBy&quot;&gt;HDN&lt;/property&gt; - &lt;property name=&quot;DocumentType&quot;&gt;Geldlening&lt;/property&gt; - &lt;/properties&gt; - &lt;/cmis&gt;</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>&nbsp;</td></tr> - </table> - </p> - <p> - When <code>action=find</code> the input (xml string) indicates the query to perform. - </p> - <p> - <b>Example:</b> - <pre><code>&lt;query&gt; - &lt;statement&gt;select * from cmis:document&lt;/statement&gt; - &lt;maxItems&gt;10&lt;/maxItems&gt; - &lt;skipCount&gt;0&lt;/skipCount&gt; - &lt;searchAllVersions&gt;true&lt;/searchAllVersions&gt; - &lt;includeAllowableActions&gt;true&lt;/includeAllowableActions&gt; - &lt;/query</code></pre> - </p> - <p> - When <code>action=update</code> the input (xml string) indicates document properties to update. - </p> - <p> - <b>Example:</b> - <pre><code>&lt;cmis&gt; - &lt;id&gt;123456789&lt;/id&gt; - &lt;properties&gt; - &lt;property name=&quot;ArrivedAt&quot; type=&quot;datetime&quot; formatString=&quot;yyyy-MM-dd'T'HH:mm:ss.SSSz&quot;&gt;2014-11-27T16:43:01.268+0100&lt;/property&gt; - &lt;property name=&quot;ArrivedBy&quot;&gt;HDN&lt;/property&gt; - &lt;property name=&quot;DocumentType&quot;&gt;Geldlening&lt;/property&gt; - &lt;/properties&gt; - &lt;/cmis&gt;</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>&nbsp;</td></tr> - <tr><td>property</td><td>custom document property to update. See <code>action=create</code> for possible attributes</td><td>&nbsp;</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.<br><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</p> - - - - - - - - - - - - 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.<br><br><b>INFO</b><p>See DB2XMLWriter for ResultSet!</p><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</p> - - - - - - - - - - - - FixedResultSender, same behaviour as FixedResultPipe, but now as a ISender. - - - - - - - - - - - - Sender to send a message to another Frank! Adapter, or an external program running in the same JVM as the Frank!Framework. - <p> - Sends a message to another Frank!Framework-adapter in the same Frank!Framework instance, or an external program running in - the same JVM as the Frank!Framework. If the callee exits with an <code>&lt;Exit/&gt;</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 <code>exit.code</code> as forward name to the SenderPipe, provided that <code>exit.code</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> - A FrankSender makes a call to either an Adapter or an external program by setting the #scope. By default the scope is <code>ADAPTER</code>. - </p> - <p/> - - <h3>Configuration of the Adapter to be called</h3> - <p> - A call to another Adapter in the same Frank!Framework instance is preferably made using the combination - of a FrankSender configured with the name of the adapter. - </p> - <h4>Configuring FrankSender and Adapter</h4> - <ul> - <li>Define a SenderPipe with a FrankSender</li> - <li>Set the attribute <code>target</code> to <i>targetAdapterName</i></li> - <li>If the adapter is in another Configuration deployed in the same Frank!Framework instance, then set <code>target</code> to <code>targetConfigurationName/targetAdapterName</code> (note the slash-separator between Configuration name and Adapter name).</li> - </ul> - In the Adapter to be called: - <ul> - <li>The adapter does not need to have a receiver configured to be called from a FrankSender,</li> - <li>The adapter will run in the same transaction as the calling adapter,</li> - <li>If the called adapter does not to run in its own transaction, set the transaction attributes on the PipeLine attribute of this adapter - or on the SenderPipe that contains this <code>FrankSender</code>.</li> - </ul> - - <h4>Configuring FrankSender with FrankListener</h4> - <ul> - <li>Define a SenderPipe with a FrankSender</li> - <li>In the target adapter, define a org.frankframework.receivers.Receiver with a FrankListener</li> - <li>Give a unique name to the listener: FrankListener#setName(String). If the name is not set, the name of the Adapter will be used.</li> - <li>Set the #setScope(Scope) to <code>LISTENER</code> and the #setTarget(String) to the listener name as per previous point</li> - <li>If the listener is in a different configuration, prefix the listener name with the name of the configuration and a slash (<code>/</code>) as separator between configuration and listener name</li> - </ul> - - <h4>Configuring FrankSender and Remote Application</h4> - <p> - <em>NB:</em> Please make sure that the IbisServiceDispatcher-1.4.jar or newer is present on the class path of the server. For more information, see: - </p> - <ul> - <li>Define a SenderPipe with a FrankSender</li> - <li>Set the attribute <code>scope</code> to either <code>JVM</code> for a Java application, or to <code>DLL</code> for code loaded from a DLL</li> - <li>Set the attribute <code>target</code> to the service-name the other application used to register itself</li> - </ul> - <p> - In the other application: - <ul> - <li>Implement the interface <code>nl.nn.adapterframework.dispatcher.RequestProcessor</code> from the IbisServiceDispatcher library</li> - <li>Register the instance with the <code>nl.nn.adapterframework.dispatcher.DispatcherManager</code> obtained via the <code>nl.nn.adapterframework.dispatcher.DispatcherManagerFactory</code></li> - <li>See the implementation code of the <code>JavaListener</code> in the Frank!Framework for an example</li> - </ul> - </p> - <p> - See also the repository of the IbisServiceDispatcher: - <a href="https://github.com/frankframework/servicedispatcher">https://github.com/frankframework/servicedispatcher</a> - </p> - - <h4>Using FrankSender to call an adapter from Larva tests</h4> - <p> - You can configure a FrankSender in Larva property files to use the FrankSender to invoke an adapter to test. When doing this, keep the following in mind: - <ul> - <li>If you leave the default scope as <code>ADAPTER</code>, then the <code>target</code> property needs to have both configuration name and adapter name, separated by a <code>/</code> character</li> - <li>When scope is left as default, the receiver and JavaListener are skipped and no transaction is started unless it is set on the adapter's <code>PipeLine</code></li> - <li>If you do need a transaction and the adapter has a JavaListener that has org.frankframework.receivers.JavaListener#setServiceName(String) defined, you can use the FrankSender with scope <code>JVM</code> - and set the <code>target</code> attribute to the <code>serviceName</code> attribute of the <code>JavaListener</code>.</li> - </ul> - </p> - - <h3>Migrating Existing Configurations</h3> - <p> - When one adapter (named A) needs to call another adapter (named B) like a subroutine, you will usually have an IbisLocalSender or an IbisJavaSender - in adapter A, and a org.frankframework.receivers.JavaListener in adapter B. - </p> - <p> - <em>NB:</em> For the example it is assumed that all adapters are defined in the same configuration. - </p> - - <h4>Example of Existing Configuration</h4> - The existing configuration might look like this in the calling adapter: - <pre><code>&lt;module&gt; - &lt;adapter name=&quot;Adapter A&quot;&gt; - &lt;receiver name=&quot;Adapter A Receiver&quot;&gt; - &lt;listener name=&quot;Adapter A Listener&quot; - className=&quot;org.frankframework...&quot; etc/&gt; - &lt;/receiver&gt; - &lt;pipeline firstPipe=&quot;...&quot;&gt; - &lt;pipe name=&quot;send&quot; className=&quot;org.frankframework.pipes.SenderPipe&quot;&gt; - &lt;sender className=&quot;org.frankframework.senders.IbisJavaSender&quot; - serviceName=&quot;service-Adapter-B&quot; /&gt; - &lt;forward name=&quot;success&quot; path=&quot;...&quot; /&gt; - &lt;/pipe&gt; - &lt;/pipeline&gt; - &lt;/adapter&gt; - &lt;/module&gt;</code></pre> - - Or like using the modern XML XSD and an IbisLocalSender instead: - <pre><code>&lt;Module&gt; - &lt;Adapter name=&quot;Adapter A&quot;&gt; - &lt;Receiver name=&quot;Adapter A Receiver&quot;&gt; - ... Listener setup and other configuration - &lt;/Receiver&gt; - &lt;Pipeline&gt; - &lt;SenderPipe name=&quot;send&quot;&gt; - &lt;IbisLocalSender name=&quot;call Adapter B&quot; - javaListener=&quot;Adapter B Listener&quot;/&gt; - &lt;Forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; - &lt;/SenderPipe&gt; - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;/Module&gt;</code></pre> - - In the receiving adapter B the listener would have been configured like this: - <pre><code>&lt;Module&gt; - &lt;Adapter name=&quot;adapter B&quot;&gt; - &lt;Receiver name=&quot;Receiver B&quot;&gt; - &lt;JavaListener name=&quot;Adapter B Listener&quot; serviceName=&quot;service-Adapter-B&quot;/&gt; - &lt;/Receiver&gt; - &lt;Pipeline&gt; - ... - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;/Module&gt;</code></pre> - <p/> - - <h4>Rewritten Example Configuration With FrankSender</h4> - This example shows the most simple way of using the FrankSender to call another adapter with least amount of overhead. - - <pre><code>&lt;Module&gt; - &lt;Adapter name=&quot;Adapter A&quot;&gt; - &lt;Receiver name=&quot;Adapter A Receiver&quot;&gt; - ... Listener setup and other configuration - &lt;/Receiver&gt; - &lt;Pipeline&gt; - &lt;SenderPipe name=&quot;send&quot;&gt; - &lt;!-- when scope=&quot;ADAPTER&quot;, then target is directly the name of the adapter you want to call --&gt; - &lt;FrankSender name=&quot;call Adapter C&quot; - scope=&quot;ADAPTER&quot; - target=&quot;adapter B&quot; - /&gt; - &lt;Forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; - &lt;/SenderPipe&gt; - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;Adapter name=&quot;adapter B&quot;&gt; - &lt;!-- No receiver needed for FrankSender in this scenario --&gt; - &lt;Pipeline&gt; - ... Exits, Pipes etc - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;/Module&gt;</code></pre> - - <h4>Rewritten Example Configuration With FrankSender and FrankListener</h4> - This example shows why you might want to call the other adapter via the FrankListener. This adds a bit more overhead to the call - of the sub-adapter for the extra error-handling done by the target receiver. - - <pre><code>&lt;Module&gt; - &lt;Adapter name=&quot;Adapter A&quot;&gt; - &lt;Receiver name=&quot;Adapter A Receiver&quot;&gt; - ... Listener setup and other configuration - &lt;/Receiver&gt; - &lt;Pipeline&gt; - &lt;SenderPipe name=&quot;send&quot;&gt; - &lt;!-- when scope=&quot;LISTENER&quot;, then target is directly the name of the FrankListener in the adapter you want to call --&gt; - &lt;FrankSender - scope=&quot;LISTENER&quot; - target=&quot;Adapter B Listener&quot;/&gt; - &lt;Forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; - &lt;/SenderPipe&gt; - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;Adapter name=&quot;adapter B&quot;&gt; - &lt;!-- Messages will only be sent to the error storage if: - - The target receiver is not transactional, and has maxTries=&quot;0&quot;, or - - The target receiver is transaction, and the Sender is set up to retry sending on error - For internal adapters, sending / receiving with retries might not make sense so the example does not show that. - --&gt; - &lt;Receiver name=&quot;Receiver B&quot; maxRetries=&quot;0&quot; transactionAttribute=&quot;NotSupported&quot;&gt; - &lt;!-- Listener name is optional, defaults to Adapter name --&gt; - &lt;FrankListener name=&quot;Adapter B Listener&quot;/&gt; - &lt;!-- This adapter now has an error storage -- without Receiver and FrankListener the sub-adapter couldn't have that --&gt; - &lt;JdbcErrorStorage slotId=&quot;Adapter B - Errors&quot; /&gt; - &lt;/Receiver&gt; - &lt;!-- If transactions are required, set transaction-attribute on the Pipeline --&gt; - &lt;Pipeline transactionAttribute=&quot;RequiresNew&quot;&gt; - ... Exits, Pipes etc - &lt;/Pipeline&gt; - &lt;/Adapter&gt; - &lt;/Module&gt;</code></pre> - - - - - - - - - - - - - - - - - - - - - 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><br><br><b>INFO</b><p>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 Frank!Framework-adapter or an application in the same JVM using IbisServiceDispatcher. - <p> - 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. - </p> - The IbisJavaSender is now considered to be legacy. The new way to call another adapter or java application from your own - adapter is by using the FrankSender. - </p> - <h4>configuring IbisJavaSender and JavaListener</h4> - <ul> - <li><em>NB:</em> Using IbisJavaSender to call another adapter is inefficient and therefore not recommended. It is much more efficient to use for this a FrankSender or IbisLocalSender.</li> - <li>Define a org.frankframework.pipes.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. For more information, see: - <a href="https://github.com/frankframework/servicedispatcher">https://github.com/frankframework/servicedispatcher</a> - - - - - - - - - - - - Posts a message to another Frank!Framework-adapter in the same Frank!Framework instance. If the callee exits with an &lt;<code>exit</code>&gt; - 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> - The IbisLocalSender is now considered to be legacy. The new way to call another adapter from your own - adapter is by using the FrankSender. - </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 org.frankframework.receivers.Receiver with either a WebServiceListener - or a JavaListener. - </p> - - - <h3>Configuration of the Adapter to be called</h3> - A call to another Adapter in the same Frank!Framework 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 Frank!Framework-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.9 - - - - - - - - - - - - Implementation of sender that sends an IDoc to SAP. - N.B. The sending of the iDoc is committed right after the XA transaction is completed. - - - - - - - - - - - - - - - - - - - - - Sender 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]</code>. - </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: - <pre><code>&lt;sender - className=&quot;org.frankframework.ldap.LdapSender&quot; - ldapProviderURL=&quot;ldap://servername:389/o=ing&quot; - operation=&quot;read&quot; - attributesToReturn=&quot;givenName,sn,telephoneNumber&quot; &gt; - &lt;param name=&quot;entryName&quot; xpathExpression=&quot;entryName&quot; /&gt; - &lt;/sender&gt;</code></pre> - <br/> - - This may result in the following output: - <pre><code>&lt;ldap&gt; - &lt;entryName&gt;uid=srp,ou=people&lt;/entryName&gt; - &lt;attributes&gt; - &lt;attribute attrID=&quot;givenName&quot;&gt; - &lt;value&gt;Jan&lt;/value&gt; - &lt;/attribute&gt; - &lt;attribute attrID=&quot;telephoneNumber&quot;&gt; - &lt;value&gt;010 5131123&lt;/value&gt; - &lt;value&gt;06 23456064&lt;/value&gt; - &lt;/attribute&gt; - &lt;attribute attrID=&quot;sn&quot;&gt; - &lt;value&gt;Jansen&lt;/value&gt; - &lt;/attribute&gt; - &lt;/attributes&gt; - &lt;/ldap&gt;</code></pre> - <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/> - <pre><code>&lt;attributes&gt; - &lt;attribute&gt; - &lt;attribute name=&quot;employeeType&quot; value=&quot;Extern&quot;/&gt; - &lt;attribute name=&quot;roomNumber&quot; value=&quot;DP 2.13.025&quot;/&gt; - &lt;attribute name=&quot;departmentCode&quot; value=&quot;358000&quot;/&gt; - &lt;attribute name=&quot;organizationalHierarchy&quot;&gt; - &lt;item value=&quot;ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;item value=&quot;ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;item value=&quot;ou=000001,ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;/attribute&gt; - &lt;attribute name=&quot;givenName&quot; value=&quot;Gerrit&quot;/&gt; - &lt;/attributes&gt;</code></pre> - <br/> - Sample result of a <code>search</code> operation:<br/> - <pre><code>&lt;entries&gt; - &lt;entry name=&quot;uid=srp&quot;&gt; - &lt;attributes&gt; - &lt;attribute&gt; - &lt;attribute name=&quot;employeeType&quot; value=&quot;Extern&quot;/&gt; - &lt;attribute name=&quot;roomNumber&quot; value=&quot;DP 2.13.025&quot;/&gt; - &lt;attribute name=&quot;departmentCode&quot; value=&quot;358000&quot;/&gt; - &lt;attribute name=&quot;organizationalHierarchy&quot;&gt; - &lt;item value=&quot;ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;item value=&quot;ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;item value=&quot;ou=000001,ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; - &lt;/attribute&gt; - &lt;attribute name=&quot;givenName&quot; value=&quot;Gerrit&quot;/&gt; - &lt;/attributes&gt; - &lt;/entry&gt; - &lt;entry&gt; .... &lt;/entry&gt; - ..... - &lt;/entries&gt;</code></pre> - <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 - <code>FileAttribute.</code>. - 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: - <pre><code>&lt;email&gt; - &lt;recipients&gt; - &lt;recipient type=&quot;to&quot;&gt;***@hotmail.com&lt;/recipient&gt; - &lt;recipient type=&quot;cc&quot;&gt;***@gmail.com&lt;/recipient&gt; - &lt;/recipients&gt; - &lt;from name=&quot;*** ***&quot;&gt;***@yahoo.com&lt;/from&gt; - &lt;subject&gt;This is the subject&lt;/subject&gt; - &lt;threadTopic&gt;subject&lt;/threadTopic&gt; - &lt;message&gt;This is the message&lt;/message&gt; - &lt;messageType&gt;text/plain&lt;/messageType&gt;&lt;!-- Optional --&gt; - &lt;messageBase64&gt;false&lt;/messageBase64&gt;&lt;!-- Optional --&gt; - &lt;charset&gt;UTF-8&lt;/charset&gt;&lt;!-- Optional --&gt; - &lt;attachments&gt; - &lt;attachment name=&quot;filename1.txt&quot;&gt;This is the first attachment&lt;/attachment&gt; - &lt;attachment name=&quot;filename2.pdf&quot; base64=&quot;true&quot;&gt;JVBERi0xLjQKCjIgMCBvYmoKPDwvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1...vSW5mbyA5IDAgUgo+PgpzdGFydHhyZWYKMzQxNDY2CiUlRU9GCg==&lt;/attachment&gt; - &lt;attachment name=&quot;filename3.pdf&quot; url=&quot;file:/c:/filename3.pdf&quot;/&gt; - &lt;attachment name=&quot;filename4.pdf&quot; sessionKey=&quot;fileContent&quot;/&gt; - &lt;/attachments&gt;&lt;!-- Optional --&gt; - &lt;/email&gt;</code></pre> - </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: - <pre><code>&lt;message&gt;&lt;![CDATA[&lt;h1&gt;This is a HtmlMessage&lt;/h1&gt;]]&gt;&lt;/message&gt;</code></pre> - </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: - <pre><code>&lt;SenderPipe name=&quot;Send&quot;&gt; - &lt;MessageStoreSender - slotId=&quot;${instance.name}/TestMessageStore&quot; - onlyStoreWhenMessageIdUnique=&quot;false&quot; /&gt; - &lt;/SenderPipe&gt;</code></pre> - - - - - - - - - - - - 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 access token used to authenticate with Akamai, you can use the authalias property. The username - represents the nonce and the password the access token.</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>&lt;SenderPipe&gt; - &lt;ReconnectSenderWrapper&gt; - &lt;EchoSender myAttribute=&quot;myValue&quot; /&gt; - &lt;/ReconnectSenderWrapper&gt; - &lt;/SenderPipe&gt;</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.<br><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</p> - - - - - - - - - - - - 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. - - - - - - - - - - - - Implementation of sender that calls a SAP RFC-function. - - N.B. If no requestFieldIndex or requestFieldName is specified, input is converted from xml; - If no replyFieldIndex or replyFieldName is specified, output is converted to xml. - - - - - - - - - - - - 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.xml - - - - - - - - - - - - Series 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>?</code>, should - have a corresponding IParameter entry. Output parameters should have <code>mode=&quot;OUTPUT&quot;</code>, or - <code>mode=&quot;INOUT&quot;</code> 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> - <pre><code>&lt;resultset&gt; - &lt;result param=&quot;r1&quot; type=&quot;STRING&quot;&gt;MESSAGE-CONTENTS&lt;/result&gt; - &lt;result param=&quot;r2&quot; type=&quot;STRING&quot;&gt;E&lt;/result&gt; - &lt;/resultset&gt;</code></pre> - - <h4>Example with Resultset and Simple Output Parameters</h4> - <pre><code>&lt;resultset&gt; - &lt;result resultNr=&quot;1&quot;&gt; - &lt;fielddefinition&gt; - &lt;field name=&quot;FIELDNAME&quot; - type=&quot;columnType&quot; - columnDisplaySize=&quot;&quot; - precision=&quot;&quot; - scale=&quot;&quot; - isCurrency=&quot;&quot; - columnTypeName=&quot;&quot; - columnClassName=&quot;&quot;/&gt; - &lt;field ...../&gt; - &lt;/fielddefinition&gt; - &lt;rowset&gt; - &lt;row number=&quot;0&quot;&gt; - &lt;field name=&quot;TKEY&quot;&gt;MSG-ID&lt;/field&gt; - &lt;field name=&quot;TCHAR&quot;&gt;E&lt;/field&gt; - &lt;field name=&quot;TMESSAGE&quot;&gt;MESSAGE-CONTENTS&lt;/field&gt; - &lt;field name=&quot;TCLOB&quot; null=&quot;true&quot;/&gt; - &lt;field name=&quot;TBLOB&quot; null=&quot;true&quot;/&gt; - &lt;/row&gt; - &lt;row number=&quot;1&quot; ...../&gt; - &lt;/rowset&gt; - &lt;/result&gt; - &lt;result param=&quot;count&quot; type=&quot;INTEGER&quot;&gt;5&lt;/result&gt; - &lt;/resultset&gt;</code></pre> - - <h4>Example with Simple and Cursor Output Parameters</h4> - <pre><code>&lt;resultset&gt; - &lt;result param=&quot;count&quot; type=&quot;INTEGER&quot;&gt;5&lt;/result&gt; - &lt;result param=&quot;cursor1&quot; type=&quot;LIST&quot;&gt; - &lt;fielddefinition&gt; - &lt;field name=&quot;FIELDNAME&quot; - type=&quot;columnType&quot; - columnDisplaySize=&quot;&quot; - precision=&quot;&quot; - scale=&quot;&quot; - isCurrency=&quot;&quot; - columnTypeName=&quot;&quot; - columnClassName=&quot;&quot;/&gt; - &lt;field ...../&gt; - &lt;/fielddefinition&gt; - &lt;rowset&gt; - &lt;row number=&quot;0&quot;&gt; - &lt;field name=&quot;TKEY&quot;&gt;MSG-ID&lt;/field&gt; - &lt;field name=&quot;TCHAR&quot;&gt;E&lt;/field&gt; - &lt;field name=&quot;TMESSAGE&quot;&gt;MESSAGE-CONTENTS&lt;/field&gt; - &lt;field name=&quot;TCLOB&quot; null=&quot;true&quot;/&gt; - &lt;field name=&quot;TBLOB&quot; null=&quot;true&quot;/&gt; - &lt;/row&gt; - &lt;row number=&quot;1&quot; ..... /&gt; - &lt;/rowset&gt; - &lt;/result&gt; - &lt;/resultset&gt;</code></pre> - </p><br><br><b>INFO</b><p>Support for stored procedures is currently experimental and changes in the currently produced output-format are expected.</p><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</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> - <pre><code>&lt;browse&gt; - &lt;jmsRealm&gt;qcf&lt;/jmsRealm&gt; - &lt;destinationName&gt;jms/GetPolicyDetailsRequest&lt;/destinationName&gt; - &lt;destinationType&gt;QUEUE&lt;/destinationType&gt; - &lt;/browse&gt;</code></pre> - </p> - <p> - <b>example (browse output):</b> - <pre><code>&lt;result&gt; - &lt;items count=&quot;2&quot;&gt; - &lt;item&gt; - &lt;timestamp&gt;Thu Nov 20 13:36:31 CET 2014&lt;/timestamp&gt; - &lt;messageId&gt;ID:LPAB00000003980-61959-1416486781822-3:5:33:1:1&lt;/messageId&gt; - &lt;correlationId&gt;...&lt;/correlationId&gt; - &lt;message&gt;&lt;![CDATA[...]]&gt;&lt;/message&gt; - &lt;/item&gt; - &lt;item&gt; - &lt;timestamp&gt;Thu Dec 12 11:59:22 CET 2014&lt;/timestamp&gt; - &lt;messageId&gt;ID:LPAB00000003980-58359-1721486799722-3:4:19:1:1&lt;/messageId&gt; - &lt;correlationId&gt;...&lt;/correlationId&gt; - &lt;message&gt;&lt;![CDATA[...]]&gt;&lt;/message&gt; - &lt;/item&gt; - &lt;/items&gt; - &lt;/result&gt;</code></pre> - </p> - - <p> - <b>example (remove output):</b> - <pre><code>&lt;result&gt; - &lt;itemsRemoved&gt;2&lt;/itemsRemoved&gt; - &lt;/result&gt;</code></pre> - - - - - - - - - - - - QuerySender that transforms the input message to a query. - <br/> - <pre><code>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] - - alter - sequenceName - - startWith - - sql - type [0..1] one of {select;ddl;other}, other by default - - query</code></pre> - <br/><br><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</p> - - - - - - - - - - - - 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. - - - - - - - - - - + + + + + + + + + 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: false + + + + + + + + + + + + + - - - + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The WSDL to read the XSDs from + + + + + 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,). 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 WSDL + + + + + Creates <code>schemaLocation</code> attribute based on the WSDL and replaces the namespace of the soap body element + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The 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,) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The 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 schema + + + + + Default 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: XML + + + + + + + + Session key to retrieve outputFormat from Default: outputFormat + + + + + Session 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: <code>Json2XmlValidator.inputFormat </code>&lt;name of the pipe&gt; + + + + + 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: true + + + + + If true assume arrays in JSON do not have the element containers like in XML Default: true + + + + + If 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: false + + + + + If true, assume that JSON contains/must contain a root element Default: false + + + + + If 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: false + + + + + If true, and converting from JSON to XML, elements in JSON that are not found in the XML Schema are ignored Default: false + + + + + If 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: true + + + + + If 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: false + + + + + If true, all XML that is generated is without a namespace set Default: false + + + + + If 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: true + + + + + Allow JSON input Default: true + + + + + + + + + + + + + + + + The 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 used + + + + + + + + + + + + + + + + + Ignore namespaces in the input message which are unknown Default: true when <code>schema</code> or <code>noNamespaceSchemaLocation</code> is used, false otherwise + + + + + + + + + + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + + + + + + + + + + + + + + + + + + + + + + + + + + - Optional identifier for this storage, to be able to share the physical storage between a number of receivers and pipes. + Name of the root element - + - 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 Pipe + Name of the response root element + + + + + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. - - - + + + + + + + + + + + + + + + + + + + + + + - - + + - Timeout <i>in milliseconds</i> for receiving a message from the queue Default: 3000 + If set, the processing continues directly at the forward of this pipe, without executing the pipe itself, if the input is empty Default: false - + - Regular 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 (?&lt;=&lt;party&gt;).*?(?=&lt;/party&gt;) will replace every - character between keys &lt;party&gt; and &lt;/party&gt; - <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. + If 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) - + - (Only used when hideRegex is not empty) Specifies the way to hide Default: ALL + See <code>ifParam</code> - - - - - - - - - - - - - - - - - - - - - - - - - - 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. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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. - - - - - - - - - - - - - - + + + Key of session variable to check if action must be executed. The pipe is only executed if the session variable exists and is not null + + + + + Value of session variable 'onlyIfSessionKey' to check if action must be executed. The pipe is only executed if the session variable has the specified value + + + + + Key of session variable to check if action must be executed. The pipe is not executed if the session variable exists and is not null + + + + + Value of session variable 'unlessSessionKey' to check if action must be executed. The pipe is not executed if the session variable has the specified value + + + + + + + + + + + - - + + + + + + + + + + + + - returned message + Only used when <code>mode=reg</code>!</b> Sets the Common Message Header version. 1 or 2 Default: 1 - + + + + + + + + + + + + + + + + + - name of the file containing the result message + either 3.1 or 3.2 Default: 3.1 - - - - - - - - - + + + + + + + + - - - - + + + + The JSON Schema to validate to + + + + + Prefix to element name to find subschema in schema Default: /definitions/ + + + + + If set: key of session variable to store reasons of mis-validation in Default: failureReason + + + + + + + + + + + - - - - - - - + + - URL to the stylesheet used to transform the output of the standard ErrorMessageFormatter + name of the root element - + - xPathExpression to use for transformation + The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. - - - + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -10618,17 +5180,17 @@ - + - + - + - + Extension to WsdlXmlValidator for API Management. @@ -10645,12 +5207,12 @@ - + - + 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. @@ -10658,12 +5220,12 @@ - + - + FxF XML validator to be used with FxF3. When receiving files (direction=receive) the message is validated against the @@ -10675,476 +5237,515 @@ - + - + <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. + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - Pipe that validates the input message against a JSON Schema. + 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>&nbsp;</td><td>&nbsp;</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>&nbsp;</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> - - + + - + - XmlValidator that will automatically add the SOAP envelope XSD to the set of XSD's used for validation. + Extension to SoapWrapperPipe for separate modes. - 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> + <p><b>Configuration </b><i>(where deviating from SoapWrapperPipe)</i><b>:</b> <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. + <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>&nbsp;</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Id</td><td>2</td><td>$fromId</td></tr> + <tr><td>To</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Location</td><td>2</td><td>if $messagingLayer='P2P' then<br/>&nbsp;$messagingLayer.$businessDomain.$applicationName.$applicationFunction.$paradigm<br/>else if $serviceContext is not empty then<br/>&nbsp;$messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceContext.$serviceContextVersion.$operationName.$operationVersion.$paradigm<br/>else<br/>&nbsp;$messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceVersion.$operationName.$operationVersion.$paradigm</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>service(Context)Version</td><td>1</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + <tr><td>applicationName</td><td>&nbsp;</td></tr> + <tr><td>applicationFunction</td><td>&nbsp;</td></tr> + <tr><td>messagingLayer</td><td>ESB</td></tr> + <tr><td>serviceLayer</td><td>&nbsp;</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>&nbsp;</td></tr> + <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> + <tr><td>From</td><td>1</td><td>&nbsp;</td></tr> + <tr><td>Id</td><td>2</td><td>$fromId</td></tr> + <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</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>&nbsp;</td><td>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</td></tr> + <tr><td>errorReason</td><td>&nbsp;</td></tr> + <tr><td>errorDetailCode</td><td>&nbsp;</td></tr> + <tr><td>errorDetailText</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</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>&nbsp;</td><td>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</td></tr> + <tr><td>errorReason</td><td>&nbsp;</td></tr> + <tr><td>errorDetailCode</td><td>&nbsp;</td></tr> + <tr><td>errorDetailText</td><td>&nbsp;</td></tr> + <tr><td>serviceName</td><td>&nbsp;</td></tr> + <tr><td>serviceContext</td><td>&nbsp;</td></tr> + <tr><td>operationName</td><td>&nbsp;</td></tr> + <tr><td>operationVersion</td><td>1</td></tr> + <tr><td>paradigm</td><td>&nbsp;</td></tr> + </table> + </p> - - + + - + - Pipe that validates the input message against an XML Schema. + 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 DTAP 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}). - - + + - + - <code>Pipe</code> that checks the well-formedness of the input message. - If <code>root</code> is given then this is also checked. + Pipe to wrap or unwrap a message from/into a SOAP Envelope. - - + + - - - - - - - - - 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: false - - - - - - - - - - - - - - - - - - The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The WSDL to read the XSDs from - - - - - 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,). 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 WSDL - - - - - Creates <code>schemaLocation</code> attribute based on the WSDL and replaces the namespace of the soap body element - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The 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,) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The 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 schema - - - + + - Default 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: XML + Default: wrap - + - + - Session key to retrieve outputFormat from Default: outputFormat + Soap version to use Default: auto + + + - + - Session 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: <code>Json2XmlValidator.inputFormat </code>&lt;name of the pipe&gt; + (only used when direction=<code>wrap</code>) Namespace of the soap envelope Default: auto determined from soapVersion - + - 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: true + Key of session variable to store auto-detected soapNamespace Default: If configured as Pipeline Input Wrapper or PipeLine Output Wrapper: <code>soapNamespace</code> - + - If true assume arrays in JSON do not have the element containers like in XML Default: true + Key of session variable to store soap header Default: If configured as Pipeline Input Wrapper and direction=<code>unwrap</code>: <code>soapHeader</code> - + - If 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: false + The encodingStyle to be set in the soap header - + - If true, assume that JSON contains/must contain a root element Default: false + The 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 - + - If 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: false + (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= - + - If true, and converting from JSON to XML, elements in JSON that are not found in the XML Schema are ignored Default: false + (only used when direction=<code>wrap</code>) Stylesheet to apply to the input message. Note: outputType=<code>xml</code> and xsltVersion=2 - + - If 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: true + (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 - + - If 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: 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 - + - If true, all XML that is generated is without a namespace set Default: false + (only used when direction=<code>wrap</code>) If not empty, this namespace is added to the root element in the soap body - + - If 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: true + If not empty, the root element in the soap body is changed to this value - + - Allow JSON input Default: true + (only used when direction=<code>unwrap</code>) If <code>false</code> and the soap body contains a soap fault, a PipeRunException is thrown Default: false - - - - - - - - - - - - + - The 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. + For direction=<code>unwrap</code> only: if true, allow unwrapped xml too Default: false - - - + - 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 used + alias used to obtain credentials for authentication to WebServiceSecurity - - - - - - - - - - - - - + - Ignore namespaces in the input message which are unknown Default: true when <code>schema</code> or <code>noNamespaceSchemaLocation</code> is used, false otherwise + Default username for WebServiceSecurity - - - - - - - - - + - The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + Default password for WebServiceSecurity - - - - - - - - - - - - - - - - - - - - - - - - + - Name of the root element + If true, the password is sent digested; Otherwise it is sent in clear text Default: true - + - Name of the response root element + For direction=<code>wrap</code> only: When false, adds an XML declaration to the output message. Default: true @@ -11153,8 +5754,8 @@ - - + + @@ -11176,323 +5777,110 @@ - - + + + + + + + - If set, the processing continues directly at the forward of this pipe, without executing the pipe itself, if the input is empty Default: false + Default: REG + + + - + - If 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) + <b>Only used when <code>mode=reg</code>!</b> Sets the Common Message Header version. 1 or 2 Default: 1 - + - See <code>ifParam</code> + (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 - + - Key of session variable to check if action must be executed. The pipe is only executed if the session variable exists and is not null + (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: true - + - Value of session variable 'onlyIfSessionKey' to check if action must be executed. The pipe is only executed if the session variable has the specified value + If <code>true</code>, the fields CorrelationId, MessageId and Timestamp will have a fixed value (for testing purposes only) Default: false - + - Key of session variable to check if action must be executed. The pipe is not executed if the session variable exists and is not null + (only used when <code>direction=wrap</code>) when <code>true</code> and the Result tag already exists, the namespace is changed Default: false - + - Value of session variable 'unlessSessionKey' to check if action must be executed. The pipe is not executed if the session variable has the specified value + When the messagingLayer part of the destination has this value interpret it as P2P - - - - - - - - - - - - - - - - - - - - - - + - Only used when <code>mode=reg</code>!</b> Sets the Common Message Header version. 1 or 2 Default: 1 + When the messagingLayer part of the destination has this value interpret it as ESB - - - + + + - + - - + + - - - - - - - + + - either 3.1 or 3.2 Default: 3.1 + The 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. - - - - - - - - - - - - + - The JSON Schema to validate to + specifies the output folder if transformFilename=<code>false</code> and direction=wrap - + - Prefix to element name to find subschema in schema Default: /definitions/ + when <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: true - + + + + + + + - If set: key of session variable to store reasons of mis-validation in Default: failureReason + either 3.1 or 3.2 Default: 3.1 - - - - - - - - - - - - + - name of the root element + when set to <code>true</code>, the folder corresponding fxf.dir property will be created in case it does not exist Default: false - + - The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + when set to <code>true</code>, ServerFileName from the input will be used as the filename Default: false - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - 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>&nbsp;</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. - - - - - - - - - - - - + - + @@ -11502,17 +5890,17 @@ - + - + - + - + Extension to SoapWrapperPipe for API Management. <p> @@ -11545,12 +5933,12 @@ - + - + Extension to SoapWrapperPipe for separate modes. @@ -11753,12 +6141,12 @@ - + - + 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 @@ -11766,7 +6154,7 @@ 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 + available on the DTAP 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}). @@ -11774,848 +6162,5151 @@ - + - + + + Pipe to wrap or unwrap a message from/into a SOAP Envelope. + + + + + + + + + + + + + + + + + + + + + + + + + + + - Pipe to wrap or unwrap a message from/into a SOAP Envelope. + General 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>. - - + + - - - - - - - - - + + + - - + + - Default: wrap + The maximum number of elements in memory, before they are evicted Default: 100 - - - - + - Soap version to use Default: auto + Either <code>LRU</code>=Least Recent Use,<code>LFU</code>=Least Frequent Use or <code>FIFO</code>=First In - First Out Default: LRU - - - - + - (only used when direction=<code>wrap</code>) Namespace of the soap envelope Default: auto determined from soapVersion + If <code>true</code>, the elements in the cache are eternal, i.e. never expire Default: false - + - Key of session variable to store auto-detected soapNamespace Default: If configured as Pipeline Input Wrapper or PipeLine Output Wrapper: <code>soapNamespace</code> + The amount of time <i>in seconds</i> to live for an element from its creation date Default: 36000 - + - Key of session variable to store soap header Default: If configured as Pipeline Input Wrapper and direction=<code>unwrap</code>: <code>soapHeader</code> + The amount of time <i>in seconds</i> to live for an element from its last accessed or modified date Default: 36000 - + - The encodingStyle to be set in the soap header + If <code>true</code>, the elements that are evicted from memory are spooled to disk Default: false - + - The 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 + The maximum number of elements on disk, before they are removed Default: 10000 - + - (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= + If <code>true</code>, the cache is stored on disk and survives configuration reloads & JVM restarts. Default: false - + - (only used when direction=<code>wrap</code>) Stylesheet to apply to the input message. Note: outputType=<code>xml</code> and xsltVersion=2 + How often to run the disk store expiry thread Default: 600 - + + + + + + + - (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 + name of the cache, will be lowercased Default: <code>&lt;ownerName&gt;</code>_cache - + - (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 + xpath expression to extract cache key from request message - + - (only used when direction=<code>wrap</code>) If not empty, this namespace is added to the root element in the soap body + output type of xpath expression to extract cache key from request message Default: text + + + - + - If not empty, the root element in the soap body is changed to this value + namespace defintions for keyxpath. must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code> definitions - + - (only used when direction=<code>unwrap</code>) If <code>false</code> and the soap body contains a soap fault, a PipeRunException is thrown Default: false + stylesheet to extract cache key from request message. Use in combination with cacheEmptyKeys to inhibit caching for certain groups of request messages - + - For direction=<code>unwrap</code> only: if true, allow unwrapped xml too Default: false + session key to use as input for transformation of request message to key by keyxpath or keystylesheet - + - alias used to obtain credentials for authentication to WebServiceSecurity + controls whether empty keys are used for caching. when set true, cache entries with empty keys can exist. Default: false - + - Default username for WebServiceSecurity + xpath expression to extract value to be cached key from response message. Use in combination with cacheEmptyValues to inhibit caching for certain groups of response messages - + + + + + + - Default password for WebServiceSecurity + namespace defintions for valuexpath. must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code> definitions - + - If true, the password is sent digested; Otherwise it is sent in clear text Default: true + stylesheet to extract value to be cached from response message - + + + session key to use as input for transformation of response message to cached value by valuexpath or valuestylesheet + + + + + controls whether empty values will be cached. when set true, empty cache entries can exist for any key. Default: false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Manager that decides the handlers based on the content of a field in the specified + position in a record. The fields in the record are separated by a separator. + The value of the specified field is taken as key in the flow-table. + + + + + + + + + + + + Manager that decides the handlers based on the content of a field in the specified + position in a record. The fields in the record are of a fixed length. + The data beween the start position and end position is taken as key in the flow-table. + + + + + + + + + + + + + + + + + + - For direction=<code>wrap</code> only: When false, adds an XML declaration to the output message. Default: true + position of field that identifies the recordtype (position of first field is 1) - + - The functional name of this pipe. Can be referenced by the <code>path</code> attribute of a PipeForward. + separator that separates the fields in the record - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + + + - - - - 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: true - - - - - If <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: false - - - + + + + + + + - When the messagingLayer part of the destination has this value interpret it as P2P + Name of the manager - + - When the messagingLayer part of the destination has this value interpret it as ESB + This manager is the initial manager, i.e. to be used for the first record Default: false + + - - - - - - - - + + + + - - - - The 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=wrap - - - - - when <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: true - - - - - - - - - - - either 3.1 or 3.2 Default: 3.1 - - - + + - when set to <code>true</code>, the folder corresponding fxf.dir property will be created in case it does not exist Default: false + Start position of the field in the record that identifies the recordtype (first character is 0) Default: 0 - + - when set to <code>true</code>, ServerFileName from the input will be used as the filename Default: false + If endposition &gt;= 0 then this field contains the endPosition of the recordtype field in the record; All characters beyond this position are ignored. Else, if endPosition &lt; 0 then it depends on the length of the recordkey in the flow Default: -1 - - - + + + - + - + + + + + + + + + + + + + + + + Basic InputStreamReaderFactory. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Domparser 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 + <code>FileAttribute.</code>. + 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=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>&lt;cmis&gt; + &lt;id&gt;documentId&lt;/id&gt; + &lt;/cmis&gt;</code></pre> + </p> + <p> + When <code>action=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>&lt;cmis&gt; + &lt;id&gt;documentId&lt;/id&gt; + &lt;/cmis&gt;</code></pre> + </p> + <p> + When <code>action=create</code> the input (xml string) indicates document properties to set. This input is optional. + </p> + <p> + <b>Example:</b> + <pre><code>&lt;cmis&gt; + &lt;name&gt;Offerte&lt;/name&gt; + &lt;objectTypeId&gt;NNB_Geldlening&lt;/objectTypeId&gt; + &lt;mediaType&gt;application/pdf&lt;/mediaType&gt; + &lt;properties&gt; + &lt;property name=&quot;ArrivedAt&quot; type=&quot;datetime&quot; formatString=&quot;yyyy-MM-dd'T'HH:mm:ss.SSSz&quot;&gt;2014-11-27T16:43:01.268+0100&lt;/property&gt; + &lt;property name=&quot;ArrivedBy&quot;&gt;HDN&lt;/property&gt; + &lt;property name=&quot;DocumentType&quot;&gt;Geldlening&lt;/property&gt; + &lt;/properties&gt; + &lt;/cmis&gt;</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>&nbsp;</td></tr> + </table> + </p> + <p> + When <code>action=find</code> the input (xml string) indicates the query to perform. + </p> + <p> + <b>Example:</b> + <pre><code>&lt;query&gt; + &lt;statement&gt;select * from cmis:document&lt;/statement&gt; + &lt;maxItems&gt;10&lt;/maxItems&gt; + &lt;skipCount&gt;0&lt;/skipCount&gt; + &lt;searchAllVersions&gt;true&lt;/searchAllVersions&gt; + &lt;includeAllowableActions&gt;true&lt;/includeAllowableActions&gt; + &lt;/query</code></pre> + </p> + <p> + When <code>action=update</code> the input (xml string) indicates document properties to update. + </p> + <p> + <b>Example:</b> + <pre><code>&lt;cmis&gt; + &lt;id&gt;123456789&lt;/id&gt; + &lt;properties&gt; + &lt;property name=&quot;ArrivedAt&quot; type=&quot;datetime&quot; formatString=&quot;yyyy-MM-dd'T'HH:mm:ss.SSSz&quot;&gt;2014-11-27T16:43:01.268+0100&lt;/property&gt; + &lt;property name=&quot;ArrivedBy&quot;&gt;HDN&lt;/property&gt; + &lt;property name=&quot;DocumentType&quot;&gt;Geldlening&lt;/property&gt; + &lt;/properties&gt; + &lt;/cmis&gt;</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>&nbsp;</td></tr> + <tr><td>property</td><td>custom document property to update. See <code>action=create</code> for possible attributes</td><td>&nbsp;</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.<br><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</p> + + + + + + + + + + + + Echos input to output. + + + + + + + + + + + + ESB (Enterprise Service Bus) extension of JmsSender. + + + + + + + + + + + + Implementation of a AbstractFileSystemSender that enables to manipulate messages in an Exchange folder. + + + + + + + + + + + + FileSystem Sender extension to handle Attachments. + + + + + + + + + + + + QuerySender that assumes a fixed query, possibly with attributes.<br><br><b>INFO</b><p>See DB2XMLWriter for ResultSet!</p><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</p> + + + + + + + + + + + + FixedResultSender, same behaviour as FixedResultPipe, but now as a ISender. + + + + + + + + + + + + Sender to send a message to another Frank! Adapter, or an external program running in the same JVM as the Frank!Framework. + <p> + Sends a message to another Frank!Framework-adapter in the same Frank!Framework instance, or an external program running in + the same JVM as the Frank!Framework. If the callee exits with an <code>&lt;Exit/&gt;</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 <code>exit.code</code> as forward name to the SenderPipe, provided that <code>exit.code</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> + A FrankSender makes a call to either an Adapter or an external program by setting the #scope. By default the scope is <code>ADAPTER</code>. + </p> + <p/> + + <h3>Configuration of the Adapter to be called</h3> + <p> + A call to another Adapter in the same Frank!Framework instance is preferably made using the combination + of a FrankSender configured with the name of the adapter. + </p> + <h4>Configuring FrankSender and Adapter</h4> + <ul> + <li>Define a SenderPipe with a FrankSender</li> + <li>Set the attribute <code>target</code> to <i>targetAdapterName</i></li> + <li>If the adapter is in another Configuration deployed in the same Frank!Framework instance, then set <code>target</code> to <code>targetConfigurationName/targetAdapterName</code> (note the slash-separator between Configuration name and Adapter name).</li> + </ul> + In the Adapter to be called: + <ul> + <li>The adapter does not need to have a dedicated receiver configured to be called from a FrankSender.</li> + <li>The adapter will run in the same transaction as the calling adapter.</li> + <li>If the called adapter does not to run in its own transaction, set the transaction attributes on the PipeLine attribute of this adapter + or on the SenderPipe that contains this <code>FrankSender</code>.</li> + </ul> + + <h4>Configuring FrankSender with FrankListener</h4> + <ul> + <li>Define a SenderPipe with a FrankSender</li> + <li>In the target adapter, define a org.frankframework.receivers.Receiver with a FrankListener</li> + <li>Give a unique name to the listener: FrankListener#setName(String). If the name is not set, the name of the Adapter will be used.</li> + <li>Set the #setScope(Scope) to <code>LISTENER</code> and the #setTarget(String) to the listener name as per previous point</li> + <li>If the listener is in a different configuration, prefix the listener name with the name of the configuration and a slash (<code>/</code>) as separator between configuration and listener name</li> + </ul> + + <h4>Configuring FrankSender and Remote Application</h4> + <p> + <em>NB:</em> Please make sure that the IbisServiceDispatcher-1.4.jar or newer is present on the class path of the server. For more information, see: + </p> + <ul> + <li>Define a SenderPipe with a FrankSender</li> + <li>Set the attribute <code>scope</code> to either <code>JVM</code> for a Java application, or to <code>DLL</code> for code loaded from a DLL</li> + <li>Set the attribute <code>target</code> to the service-name the other application used to register itself</li> + </ul> + <p> + In the other application: + <ul> + <li>Implement the interface <code>nl.nn.adapterframework.dispatcher.RequestProcessor</code> from the IbisServiceDispatcher library</li> + <li>Register the instance with the <code>nl.nn.adapterframework.dispatcher.DispatcherManager</code> obtained via the <code>nl.nn.adapterframework.dispatcher.DispatcherManagerFactory</code></li> + <li>See the implementation code of the <code>JavaListener</code> in the Frank!Framework for an example</li> + </ul> + </p> + <p> + See also the repository of the IbisServiceDispatcher: + <a href="https://github.com/frankframework/servicedispatcher">https://github.com/frankframework/servicedispatcher</a> + </p> + + <h4>Using FrankSender to call an adapter from Larva tests</h4> + <p> + You can configure a FrankSender in Larva property files to use the FrankSender to invoke an adapter to test. When doing this, keep the following in mind: + <ul> + <li>If you leave the default scope as <code>ADAPTER</code>, then the <code>target</code> property needs to have both configuration name and adapter name, separated by a <code>/</code> character</li> + <li>When scope is left as default, the receiver and JavaListener are skipped and no transaction is started unless it is set on the adapter's <code>PipeLine</code></li> + <li>If you do need a transaction and the adapter has a JavaListener that has org.frankframework.receivers.JavaListener#setServiceName(String) defined, you can use the FrankSender with scope <code>JVM</code> + and set the <code>target</code> attribute to the <code>serviceName</code> attribute of the <code>JavaListener</code>.</li> + </ul> + </p> + + <h3>Migrating Existing Configurations</h3> + <p> + When one adapter (named A) needs to call another adapter (named B) like a subroutine, you will usually have an IbisLocalSender or an IbisJavaSender + in adapter A, and a org.frankframework.receivers.JavaListener in adapter B. + </p> + <p> + <em>NB:</em> For the example it is assumed that all adapters are defined in the same configuration. + </p> + + <h4>Example of Existing Configuration</h4> + The existing configuration might look like this in the calling adapter: + <pre><code>&lt;module&gt; + &lt;adapter name=&quot;Adapter A&quot;&gt; + &lt;receiver name=&quot;Adapter A Receiver&quot;&gt; + &lt;listener name=&quot;Adapter A Listener&quot; + className=&quot;org.frankframework...&quot; etc/&gt; + &lt;/receiver&gt; + &lt;pipeline firstPipe=&quot;...&quot;&gt; + &lt;pipe name=&quot;send&quot; className=&quot;org.frankframework.pipes.SenderPipe&quot;&gt; + &lt;sender className=&quot;org.frankframework.senders.IbisJavaSender&quot; + serviceName=&quot;service-Adapter-B&quot; /&gt; + &lt;forward name=&quot;success&quot; path=&quot;...&quot; /&gt; + &lt;/pipe&gt; + &lt;/pipeline&gt; + &lt;/adapter&gt; + &lt;/module&gt;</code></pre> + + Or like using the modern XML XSD and an IbisLocalSender instead: + <pre><code>&lt;Module&gt; + &lt;Adapter name=&quot;Adapter A&quot;&gt; + &lt;Receiver name=&quot;Adapter A Receiver&quot;&gt; + ... Listener setup and other configuration + &lt;/Receiver&gt; + &lt;Pipeline&gt; + &lt;SenderPipe name=&quot;send&quot;&gt; + &lt;IbisLocalSender name=&quot;call Adapter B&quot; + javaListener=&quot;Adapter B Listener&quot;/&gt; + &lt;Forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; + &lt;/SenderPipe&gt; + &lt;/Pipeline&gt; + &lt;/Adapter&gt; + &lt;/Module&gt;</code></pre> + + In the receiving adapter B the listener would have been configured like this: + <pre><code>&lt;Module&gt; + &lt;Adapter name=&quot;adapter B&quot;&gt; + &lt;Receiver name=&quot;Receiver B&quot;&gt; + &lt;JavaListener name=&quot;Adapter B Listener&quot; serviceName=&quot;service-Adapter-B&quot;/&gt; + &lt;/Receiver&gt; + &lt;Pipeline&gt; + ... + &lt;/Pipeline&gt; + &lt;/Adapter&gt; + &lt;/Module&gt;</code></pre> + <p/> + + <h4>Rewritten Example Configuration With FrankSender</h4> + This example shows the most simple way of using the FrankSender to call another adapter with least amount of overhead. + + <pre><code>&lt;Module&gt; + &lt;Adapter name=&quot;Adapter A&quot;&gt; + &lt;Receiver name=&quot;Adapter A Receiver&quot;&gt; + ... Listener setup and other configuration + &lt;/Receiver&gt; + &lt;Pipeline&gt; + &lt;SenderPipe name=&quot;send&quot;&gt; + &lt;!-- when scope=&quot;ADAPTER&quot;, then target is directly the name of the adapter you want to call --&gt; + &lt;FrankSender name=&quot;call Adapter C&quot; + scope=&quot;ADAPTER&quot; + target=&quot;adapter B&quot; + /&gt; + &lt;Forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; + &lt;/SenderPipe&gt; + &lt;/Pipeline&gt; + &lt;/Adapter&gt; + &lt;Adapter name=&quot;adapter B&quot;&gt; + &lt;!-- No receiver needed for FrankSender in this scenario --&gt; + &lt;Pipeline&gt; + ... Exits, Pipes etc + &lt;/Pipeline&gt; + &lt;/Adapter&gt; + &lt;/Module&gt;</code></pre> + + <h4>Rewritten Example Configuration With FrankSender and FrankListener</h4> + This example shows why you might want to call the other adapter via the FrankListener. This adds a bit more overhead to the call + of the sub-adapter for the extra error-handling done by the target receiver. + + <pre><code>&lt;Module&gt; + &lt;Adapter name=&quot;Adapter A&quot;&gt; + &lt;Receiver name=&quot;Adapter A Receiver&quot;&gt; + ... Listener setup and other configuration + &lt;/Receiver&gt; + &lt;Pipeline&gt; + &lt;SenderPipe name=&quot;send&quot;&gt; + &lt;!-- when scope=&quot;LISTENER&quot;, then target is directly the name of the FrankListener in the adapter you want to call --&gt; + &lt;FrankSender + scope=&quot;LISTENER&quot; + target=&quot;Adapter B Listener&quot;/&gt; + &lt;Forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; + &lt;/SenderPipe&gt; + &lt;/Pipeline&gt; + &lt;/Adapter&gt; + &lt;Adapter name=&quot;adapter B&quot;&gt; + &lt;!-- Messages will only be sent to the error storage if: + - The target receiver is not transactional, and has maxTries=&quot;0&quot;, or + - The target receiver is transaction, and the Sender is set up to retry sending on error + For internal adapters, sending / receiving with retries might not make sense so the example does not show that. + --&gt; + &lt;Receiver name=&quot;Receiver B&quot; maxRetries=&quot;0&quot; transactionAttribute=&quot;NotSupported&quot;&gt; + &lt;!-- Listener name is optional, defaults to Adapter name --&gt; + &lt;FrankListener name=&quot;Adapter B Listener&quot;/&gt; + &lt;!-- This adapter now has an error storage -- without Receiver and FrankListener the sub-adapter couldn't have that --&gt; + &lt;JdbcErrorStorage slotId=&quot;Adapter B - Errors&quot; /&gt; + &lt;/Receiver&gt; + &lt;!-- If transactions are required, set transaction-attribute on the Pipeline --&gt; + &lt;Pipeline transactionAttribute=&quot;RequiresNew&quot;&gt; + ... Exits, Pipes etc + &lt;/Pipeline&gt; + &lt;/Adapter&gt; + &lt;/Module&gt;</code></pre> + + + + + + + + + + + + + + + + + + + + + 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><br><br><b>INFO</b><p>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 Frank!Framework-adapter or an application in the same JVM using IbisServiceDispatcher. + <p> + 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. + </p> + The IbisJavaSender is now considered to be legacy. The new way to call another adapter or java application from your own + adapter is by using the FrankSender. + </p> + <h4>configuring IbisJavaSender and JavaListener</h4> + <ul> + <li><em>NB:</em> Using IbisJavaSender to call another adapter is inefficient and therefore not recommended. It is much more efficient to use for this a FrankSender or IbisLocalSender.</li> + <li>Define a org.frankframework.pipes.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. For more information, see: + <a href="https://github.com/frankframework/servicedispatcher">https://github.com/frankframework/servicedispatcher</a> + + + + + + + + + + + + Posts a message to another Frank!Framework-adapter in the same Frank!Framework instance. If the callee exits with an &lt;<code>exit</code>&gt; + 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> + The IbisLocalSender is now considered to be legacy. The new way to call another adapter from your own + adapter is by using the FrankSender. + </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 org.frankframework.receivers.Receiver with either a WebServiceListener + or a JavaListener. + </p> + + + <h3>Configuration of the Adapter to be called</h3> + A call to another Adapter in the same Frank!Framework 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 Frank!Framework-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.9 + + + + + + + + + + + + Implementation of sender that sends an IDoc to SAP. + N.B. The sending of the iDoc is committed right after the XA transaction is completed. + + + + + + + + + + + + + + + + + + + + + Sender 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]</code>. + </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: + <pre><code>&lt;sender + className=&quot;org.frankframework.ldap.LdapSender&quot; + ldapProviderURL=&quot;ldap://servername:389/o=ing&quot; + operation=&quot;read&quot; + attributesToReturn=&quot;givenName,sn,telephoneNumber&quot; &gt; + &lt;param name=&quot;entryName&quot; xpathExpression=&quot;entryName&quot; /&gt; + &lt;/sender&gt;</code></pre> + <br/> + + This may result in the following output: + <pre><code>&lt;ldap&gt; + &lt;entryName&gt;uid=srp,ou=people&lt;/entryName&gt; + &lt;attributes&gt; + &lt;attribute attrID=&quot;givenName&quot;&gt; + &lt;value&gt;Jan&lt;/value&gt; + &lt;/attribute&gt; + &lt;attribute attrID=&quot;telephoneNumber&quot;&gt; + &lt;value&gt;010 5131123&lt;/value&gt; + &lt;value&gt;06 23456064&lt;/value&gt; + &lt;/attribute&gt; + &lt;attribute attrID=&quot;sn&quot;&gt; + &lt;value&gt;Jansen&lt;/value&gt; + &lt;/attribute&gt; + &lt;/attributes&gt; + &lt;/ldap&gt;</code></pre> + <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/> + <pre><code>&lt;attributes&gt; + &lt;attribute&gt; + &lt;attribute name=&quot;employeeType&quot; value=&quot;Extern&quot;/&gt; + &lt;attribute name=&quot;roomNumber&quot; value=&quot;DP 2.13.025&quot;/&gt; + &lt;attribute name=&quot;departmentCode&quot; value=&quot;358000&quot;/&gt; + &lt;attribute name=&quot;organizationalHierarchy&quot;&gt; + &lt;item value=&quot;ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; + &lt;item value=&quot;ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; + &lt;item value=&quot;ou=000001,ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; + &lt;/attribute&gt; + &lt;attribute name=&quot;givenName&quot; value=&quot;Gerrit&quot;/&gt; + &lt;/attributes&gt;</code></pre> + <br/> + Sample result of a <code>search</code> operation:<br/> + <pre><code>&lt;entries&gt; + &lt;entry name=&quot;uid=srp&quot;&gt; + &lt;attributes&gt; + &lt;attribute&gt; + &lt;attribute name=&quot;employeeType&quot; value=&quot;Extern&quot;/&gt; + &lt;attribute name=&quot;roomNumber&quot; value=&quot;DP 2.13.025&quot;/&gt; + &lt;attribute name=&quot;departmentCode&quot; value=&quot;358000&quot;/&gt; + &lt;attribute name=&quot;organizationalHierarchy&quot;&gt; + &lt;item value=&quot;ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; + &lt;item value=&quot;ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; + &lt;item value=&quot;ou=000001,ou=OPS&amp;IT,ou=NL,ou=ING-EUR,ou=Group,ou=Organization,o=ing&quot;/&gt; + &lt;/attribute&gt; + &lt;attribute name=&quot;givenName&quot; value=&quot;Gerrit&quot;/&gt; + &lt;/attributes&gt; + &lt;/entry&gt; + &lt;entry&gt; .... &lt;/entry&gt; + ..... + &lt;/entries&gt;</code></pre> + <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 + <code>FileAttribute.</code>. + 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: + <pre><code>&lt;email&gt; + &lt;recipients&gt; + &lt;recipient type=&quot;to&quot;&gt;***@hotmail.com&lt;/recipient&gt; + &lt;recipient type=&quot;cc&quot;&gt;***@gmail.com&lt;/recipient&gt; + &lt;/recipients&gt; + &lt;from name=&quot;*** ***&quot;&gt;***@yahoo.com&lt;/from&gt; + &lt;subject&gt;This is the subject&lt;/subject&gt; + &lt;threadTopic&gt;subject&lt;/threadTopic&gt; + &lt;message&gt;This is the message&lt;/message&gt; + &lt;messageType&gt;text/plain&lt;/messageType&gt;&lt;!-- Optional --&gt; + &lt;messageBase64&gt;false&lt;/messageBase64&gt;&lt;!-- Optional --&gt; + &lt;charset&gt;UTF-8&lt;/charset&gt;&lt;!-- Optional --&gt; + &lt;attachments&gt; + &lt;attachment name=&quot;filename1.txt&quot;&gt;This is the first attachment&lt;/attachment&gt; + &lt;attachment name=&quot;filename2.pdf&quot; base64=&quot;true&quot;&gt;JVBERi0xLjQKCjIgMCBvYmoKPDwvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1...vSW5mbyA5IDAgUgo+PgpzdGFydHhyZWYKMzQxNDY2CiUlRU9GCg==&lt;/attachment&gt; + &lt;attachment name=&quot;filename3.pdf&quot; url=&quot;file:/c:/filename3.pdf&quot;/&gt; + &lt;attachment name=&quot;filename4.pdf&quot; sessionKey=&quot;fileContent&quot;/&gt; + &lt;/attachments&gt;&lt;!-- Optional --&gt; + &lt;/email&gt;</code></pre> + </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: + <pre><code>&lt;message&gt;&lt;![CDATA[&lt;h1&gt;This is a HtmlMessage&lt;/h1&gt;]]&gt;&lt;/message&gt;</code></pre> + </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: + <pre><code>&lt;SenderPipe name=&quot;Send&quot;&gt; + &lt;MessageStoreSender + slotId=&quot;${instance.name}/TestMessageStore&quot; + onlyStoreWhenMessageIdUnique=&quot;false&quot; /&gt; + &lt;/SenderPipe&gt;</code></pre> + + + + + + + + + + + + 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 AbstractHttpSender for more arguments and parameters!</p> + + + <p><b>AuthAlias:</b></p> + <p>If you do not want to specify the nonce and the access token used to authenticate with Akamai, you can use the authalias property. The username + represents the nonce and the password the access token.</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>&lt;SenderPipe&gt; + &lt;ReconnectSenderWrapper&gt; + &lt;EchoSender myAttribute=&quot;myValue&quot; /&gt; + &lt;/ReconnectSenderWrapper&gt; + &lt;/SenderPipe&gt;</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.<br><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</p> + + + + + + + + + + + + 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. + + + + + + + + + + + + Implementation of sender that calls a SAP RFC-function. + + N.B. If no requestFieldIndex or requestFieldName is specified, input is converted from xml; + If no replyFieldIndex or replyFieldName is specified, output is converted to xml. + - - - - - - - - - - - + + + + + - - - - - - + - Extension to SoapWrapperPipe for API Management. + 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.xml + + + + + + + + + + + + Series 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> - <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>&nbsp;</td><td>&nbsp;</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>&nbsp;</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> + <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>?</code>, should + have a corresponding IParameter entry. Output parameters should have <code>mode=&quot;OUTPUT&quot;</code>, or + <code>mode=&quot;INOUT&quot;</code> 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> + <pre><code>&lt;resultset&gt; + &lt;result param=&quot;r1&quot; type=&quot;STRING&quot;&gt;MESSAGE-CONTENTS&lt;/result&gt; + &lt;result param=&quot;r2&quot; type=&quot;STRING&quot;&gt;E&lt;/result&gt; + &lt;/resultset&gt;</code></pre> + + <h4>Example with Resultset and Simple Output Parameters</h4> + <pre><code>&lt;resultset&gt; + &lt;result resultNr=&quot;1&quot;&gt; + &lt;fielddefinition&gt; + &lt;field name=&quot;FIELDNAME&quot; + type=&quot;columnType&quot; + columnDisplaySize=&quot;&quot; + precision=&quot;&quot; + scale=&quot;&quot; + isCurrency=&quot;&quot; + columnTypeName=&quot;&quot; + columnClassName=&quot;&quot;/&gt; + &lt;field ...../&gt; + &lt;/fielddefinition&gt; + &lt;rowset&gt; + &lt;row number=&quot;0&quot;&gt; + &lt;field name=&quot;TKEY&quot;&gt;MSG-ID&lt;/field&gt; + &lt;field name=&quot;TCHAR&quot;&gt;E&lt;/field&gt; + &lt;field name=&quot;TMESSAGE&quot;&gt;MESSAGE-CONTENTS&lt;/field&gt; + &lt;field name=&quot;TCLOB&quot; null=&quot;true&quot;/&gt; + &lt;field name=&quot;TBLOB&quot; null=&quot;true&quot;/&gt; + &lt;/row&gt; + &lt;row number=&quot;1&quot; ...../&gt; + &lt;/rowset&gt; + &lt;/result&gt; + &lt;result param=&quot;count&quot; type=&quot;INTEGER&quot;&gt;5&lt;/result&gt; + &lt;/resultset&gt;</code></pre> + + <h4>Example with Simple and Cursor Output Parameters</h4> + <pre><code>&lt;resultset&gt; + &lt;result param=&quot;count&quot; type=&quot;INTEGER&quot;&gt;5&lt;/result&gt; + &lt;result param=&quot;cursor1&quot; type=&quot;LIST&quot;&gt; + &lt;fielddefinition&gt; + &lt;field name=&quot;FIELDNAME&quot; + type=&quot;columnType&quot; + columnDisplaySize=&quot;&quot; + precision=&quot;&quot; + scale=&quot;&quot; + isCurrency=&quot;&quot; + columnTypeName=&quot;&quot; + columnClassName=&quot;&quot;/&gt; + &lt;field ...../&gt; + &lt;/fielddefinition&gt; + &lt;rowset&gt; + &lt;row number=&quot;0&quot;&gt; + &lt;field name=&quot;TKEY&quot;&gt;MSG-ID&lt;/field&gt; + &lt;field name=&quot;TCHAR&quot;&gt;E&lt;/field&gt; + &lt;field name=&quot;TMESSAGE&quot;&gt;MESSAGE-CONTENTS&lt;/field&gt; + &lt;field name=&quot;TCLOB&quot; null=&quot;true&quot;/&gt; + &lt;field name=&quot;TBLOB&quot; null=&quot;true&quot;/&gt; + &lt;/row&gt; + &lt;row number=&quot;1&quot; ..... /&gt; + &lt;/rowset&gt; + &lt;/result&gt; + &lt;/resultset&gt;</code></pre> + </p><br><br><b>INFO</b><p>Support for stored procedures is currently experimental and changes in the currently produced output-format are expected.</p><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</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. - - + + - + - Extension to SoapWrapperPipe for separate modes. + Sender for browsing and removing queue messages (with input and output in a XML message). - <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>&nbsp;</td></tr> - <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> - <tr><td>From</td><td>1</td><td>&nbsp;</td></tr> - <tr><td>Id</td><td>2</td><td>$fromId</td></tr> - <tr><td>To</td><td>1</td><td>&nbsp;</td></tr> - <tr><td>Location</td><td>2</td><td>if $messagingLayer='P2P' then<br/>&nbsp;$messagingLayer.$businessDomain.$applicationName.$applicationFunction.$paradigm<br/>else if $serviceContext is not empty then<br/>&nbsp;$messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceContext.$serviceContextVersion.$operationName.$operationVersion.$paradigm<br/>else<br/>&nbsp;$messagingLayer.$businessDomain.$serviceLayer.$serviceName.$serviceVersion.$operationName.$operationVersion.$paradigm</td></tr> - <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</td></tr> - <tr><td>serviceName</td><td>&nbsp;</td></tr> - <tr><td>serviceContext</td><td>&nbsp;</td></tr> - <tr><td>service(Context)Version</td><td>1</td></tr> - <tr><td>operationName</td><td>&nbsp;</td></tr> - <tr><td>operationVersion</td><td>1</td></tr> - <tr><td>paradigm</td><td>&nbsp;</td></tr> - <tr><td>applicationName</td><td>&nbsp;</td></tr> - <tr><td>applicationFunction</td><td>&nbsp;</td></tr> - <tr><td>messagingLayer</td><td>ESB</td></tr> - <tr><td>serviceLayer</td><td>&nbsp;</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> + When input root element is <code>browse</code> all queue messages are returned. </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>&nbsp;</td></tr> - <tr><td>&nbsp;</td><td>&nbsp;</td><td>xmlns=$namespace</td></tr> - <tr><td>From</td><td>1</td><td>&nbsp;</td></tr> - <tr><td>Id</td><td>2</td><td>$fromId</td></tr> - <tr><td>HeaderFields</td><td>1</td><td>&nbsp;</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> + When input root element is <code>remove</code> all queue messages are removed. </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>&nbsp;</td><td>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</td></tr> - <tr><td>errorReason</td><td>&nbsp;</td></tr> - <tr><td>errorDetailCode</td><td>&nbsp;</td></tr> - <tr><td>errorDetailText</td><td>&nbsp;</td></tr> - <tr><td>serviceName</td><td>&nbsp;</td></tr> - <tr><td>serviceContext</td><td>&nbsp;</td></tr> - <tr><td>operationName</td><td>&nbsp;</td></tr> - <tr><td>operationVersion</td><td>1</td></tr> - <tr><td>paradigm</td><td>&nbsp;</td></tr> - <tr><td>fixResultNamespace</td><td>false</td></tr> - </table> + <b>example (input):</b> + <pre><code>&lt;browse&gt; + &lt;jmsRealm&gt;qcf&lt;/jmsRealm&gt; + &lt;destinationName&gt;jms/GetPolicyDetailsRequest&lt;/destinationName&gt; + &lt;destinationType&gt;QUEUE&lt;/destinationType&gt; + &lt;/browse&gt;</code></pre> </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>&nbsp;</td><td>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</td></tr> - <tr><td>errorReason</td><td>&nbsp;</td></tr> - <tr><td>errorDetailCode</td><td>&nbsp;</td></tr> - <tr><td>errorDetailText</td><td>&nbsp;</td></tr> - <tr><td>serviceName</td><td>&nbsp;</td></tr> - <tr><td>serviceContext</td><td>&nbsp;</td></tr> - <tr><td>operationName</td><td>&nbsp;</td></tr> - <tr><td>operationVersion</td><td>1</td></tr> - <tr><td>paradigm</td><td>&nbsp;</td></tr> - </table> - </p> + <b>example (browse output):</b> + <pre><code>&lt;result&gt; + &lt;items count=&quot;2&quot;&gt; + &lt;item&gt; + &lt;timestamp&gt;Thu Nov 20 13:36:31 CET 2014&lt;/timestamp&gt; + &lt;messageId&gt;ID:LPAB00000003980-61959-1416486781822-3:5:33:1:1&lt;/messageId&gt; + &lt;correlationId&gt;...&lt;/correlationId&gt; + &lt;message&gt;&lt;![CDATA[...]]&gt;&lt;/message&gt; + &lt;/item&gt; + &lt;item&gt; + &lt;timestamp&gt;Thu Dec 12 11:59:22 CET 2014&lt;/timestamp&gt; + &lt;messageId&gt;ID:LPAB00000003980-58359-1721486799722-3:4:19:1:1&lt;/messageId&gt; + &lt;correlationId&gt;...&lt;/correlationId&gt; + &lt;message&gt;&lt;![CDATA[...]]&gt;&lt;/message&gt; + &lt;/item&gt; + &lt;/items&gt; + &lt;/result&gt;</code></pre> + </p> + + <p> + <b>example (remove output):</b> + <pre><code>&lt;result&gt; + &lt;itemsRemoved&gt;2&lt;/itemsRemoved&gt; + &lt;/result&gt;</code></pre> + + + + + + + + + + + + QuerySender that transforms the input message to a query. + <br/> + <pre><code>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] + + alter - sequenceName + - startWith + + sql - type [0..1] one of {select;ddl;other}, other by default + - query</code></pre> + <br/><br><br><b>INFO</b><p>Please note that the default value of <code>trimSpaces</code> is `true`</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}). + 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. - - + + - + - Pipe to wrap or unwrap a message from/into a SOAP Envelope. + 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 account + + + + + Secret key to access to the AWS resources owned by the account + + + + + Alias used to obtain AWS credentials + + + + + Setting this flag will result in disabling chunked encoding for all requests. Default: false + + + + + Option to enable or disable the usage of multi-region access point ARNs. Default: false + + + + + Name of the AWS region that the client is using. Default: eu-west-1 + + + + + Name of the bucket to access. The bucketName can also be specified by prefixing it to the object name, separated from it by <code>|</code> + + + + + Proxy host + + + + + Proxy port + + + + + The 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 S3 Default: 50 + + + + + + + + + + + + + + + + name of the sender + + + + + + + + + If parameter [<code>action</code>] 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 <code>filename</code> is used. If that is not set either, the input is used + + + + + Destination for <code>move</code>, <code>copy</code> or <code>rename</code>. If not set, the parameter <code>destination</code> is used. If that is not set either, the input is used + + + + + Folder that is scanned for files when action=<code>list</code>. When not set, the root is scanned + + + + + If <code>true</code>: if a non-existing folder is part of the fileName, it will be created. Default: false + + + + + If set <code>true</code>, for actions <code>create</code>, <code>write</code>, <code>move</code>, <code>copy</code> or <code>rename</code>, the destination file is overwritten if it already exists Default: false + + + + + For action=<code>append</code>: 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: 0 + + + + + For action=<code>append</code>: 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: 0 + + + + + For the actions <code>write</code> and <code>append</code>, with rotateSize>0: the number of backup files that is kept. The inputFolder must point to the directory where the file resides Default: 0 + + + + + Filter of files to look for in inputFolder e.g. '*.inp'. Works with actions <code>move</code>, <code>copy</code>, <code>delete</code> and <code>list</code> + + + + + Filter of files to be excluded when looking in inputFolder. Works with actions <code>move</code>, <code>copy</code>, <code>delete</code> and <code>list</code> + + + + + If 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 <code>write</code> and <code>append</code> Default: false + + + + + Charset to be used for <code>read</code> and <code>write</code> action + + + + + If set to true then the folder will be deleted if it is empty after processing the action. Works with actions <code>delete</code>, <code>readDelete</code> and <code>move</code> + + + + + Sets the outputFormat. This ignored when reading a file. Is applicable to actions which return information about file(s). Relevant for: + 'info', 'list', 'append', 'move', 'delete' and 'copy' actions. Default: XML + + + + + + + + Filter for action <code>list</code>. Specify <code>FILES_ONLY</code>, <code>FOLDERS_ONLY</code> or <code>FILES_AND_FOLDERS</code>. Default: FILES_ONLY + + + + + + + + + + + + + + + + + + + Specifies action to perform + + + + + + + + The maximum number of concurrent connections Default: 10 + + + + + READ_TIMEOUT timeout in MS. + Defaults to 10000, inherited from HttpSender#setTimeout. Default: 10000 + + + + + URL to connect to + + + + + Repository ID + + + + + Alias used to obtain credentials for authentication to host + + + + + Username used in authentication to host + + + + + Password used in authentication to host + + + + + BindingType CMIS protocol to use + + + + + + + + If <code>action=create</code> the sessionKey that contains the file to use. If <code>action=get</code> and <code>getProperties=true</code> the sessionKey to store the result in + + + + + If <code>action=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 used + + + + + If <code>action=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=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=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=create</code>). If true, the document is created in the root folder of the repository. Otherwise the document is created in the repository Default: true + + + + + If true, the session is not closed at the end and it will be used in the next call Default: true + + + + + Override entrypoint WSDL by reading it from the classpath, overrides url attribute + + + + + Resource url to keystore or certificate. If none specified, the JVMs default keystore will be used. + + + + + Type of keystore Default: pkcs12 + + + + + + + + Authentication alias used to obtain keystore password + + + + + Default password to access keystore + + + + + Alias to obtain specific certificate or key in keystore + + + + + Authentication 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 algorithm + + + + + Resource url to truststore. If none specified, the JVMs default truststore will be used. + + + + + Type of truststore Default: jks + + + + + + + + Authentication alias used to obtain truststore password + + + + + Default password to access truststore + + + + + Trust manager algorithm. Can be left empty to use the servers default algorithm + + + + + If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer. Note: This attribute is unsafe and should not be used in a production environment. Default: false + + + + + If <code>true</code>, self signed certificates are accepted. Note: This attribute is unsafe and should not be used in a production environment. Default: false + + + + + If <code>true</code>, CertificateExpiredExceptions are ignored. Note: This attribute is unsafe and should not be used in a production environment. Default: false + + + + + Proxy host url + + + + + Proxy host port Default: 80 + + + + + Alias used to obtain credentials for authentication to proxy + + + + + Proxy Username + + + + + Proxy Password + + + + + + + + + + + + + + + + The command to be executed. Note: Executing a command in WAS requires &lt;&lt;ALL FILES&gt;&gt; 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: 0 + + + + + In case the command that will be executed contains arguments then this flag should be set to true Default: false + + + + + + + + + + + + + + + The 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: 0 + + + + + + + + + + + + Type of query to be executed Default: OTHER + + + + + + + + + + The maximum number of rows to be returned from the output of <code>select</code> queries, -1 means unlimited rows Default: -1 + + + + + The 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: 1 + + + + + + + Comma 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 dialect + + + + + When 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: false + + + + + when set and >=0, ' FOR UPDATE WAIT #' is used instead of ' FOR UPDATE NOWAIT SKIP LOCKED' Default: -1 + + + + + + Only for querytype 'updateBlob': column that contains the BLOB to be updated Default: 1 + + + + + For 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 to + + + + + controls whether blobdata is stored compressed in the database Default: true + + + + + controls 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 case + + + + + Controls automatically whether blobdata is stored compressed and/or serialized in the database Default: false + + + + + Only for querytype 'updateClob': column that contains the CLOB to be updated Default: 1 + + + + + For 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 to + + + + + + + If 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: false + + + + + + + + + + + + + + + + + + hack to allow to introduce a correlationid Default: true + + + + + + + + + + + + + + + + The 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 autodiscovery + + + + + Client 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 Secrets + + + + + Tenant 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 used + + + + + If empty, all mails are retrieved. If set to <code>NDR</code> only Non-Delivery Report mails ('bounces') are retrieved + + + + + Comma separated list of fields to try as response address Default: <code>replyTo,from,sender,Return-Path</code> + + + + + proxy host + + + + + proxy port Default: 8080 + + + + + proxy username + + + + + proxy password + + + + + proxy authAlias + + + + + proxy domain + + + + + Separator character used when working with multiple mailboxes, specified before the separator in the object name <code>test@organisation.com|My sub folder</code> or <code>test@organisation.com|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: pkcs12 + + + + + + + + Authentication alias used to obtain keystore password + + + + + Default password to access keystore + + + + + Key manager algorithm. Can be left empty to use the servers default algorithm + + + + + Alias to obtain specific certificate or key in keystore + + + + + Authentication 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: jks + + + + + + + + Authentication alias used to obtain truststore password + + + + + Default password to access truststore + + + + + Trust manager algorithm. Can be left empty to use the servers default algorithm + + + + + If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer Default: false + + + + + If <code>true</code>, self signed certificates are accepted Default: false + + + + + If <code>true</code>, CertificateExpiredExceptions are ignored Default: false + + + + + + + + + + + + + + + + + + + + + The SQL query text to be executed each time sendMessage() is called + + + + + + + + + + + + + + + + + should values between ${ and } be resolved from the pipelinesession Default: false + + + + + Name of the file containing the result message + + + + + returned message + + + + + + + + + + + + + + + + + + + Synchronous or Asynchronous execution of the call to other adapter or system. + <br/> + Set to <code>false</code> to make the call asynchronously. This means that the current adapter + continues with the next pipeline and the result of the sub-adapter that was called, or other system that was called, + is ignored. Instead, the input message will be returned as the result message. Default: true + + + + + Scope decides if the FrankSender calls another adapter, or another Java program running in the same JVM. + <br/> + It is possible to set this via a parameter. If the parameter is defined but the value at runtime + is empty, then the value set via this attribute will be used as default. Default: ADAPTER + + + + + + + + Target: service-name of service in other application that should be called, or name of adapter to be called. + If the adapter is in another configuration, prefix the adapter name with the name of that configuration and a slash ("<code>/</code>"). + <br/> + It is possible to set a target at runtime via a parameter. + <br/> + If a parameter with name <code>target</code> exists but has no value, then the target configured + via the attribute will be used as a default. + + + + + 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. + + + + + + + + + + + + + + + + pathname of the file or directory to list. Default: Home folder of the ftp user + + + + + Name or ip address of remote host + + + + + Port number of remote host Default: 21 + + + + + Name of the alias to obtain credentials to authenticatie on remote server + + + + + Name of the user to authenticatie on remote server + + + + + Password to authenticatie on remote server + + + + + Proxy hostname + + + + + Proxy port Default: 1080 + + + + + FTP protocol to use Default: FTP + + + + + + + + + + + + + If <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 Default: false + + + + + (ftps) If <code>true</code>, self signed certificates are accepted Default: false + + + + + (ftps) If <code>true</code>, CertificateExpiredExceptions are ignored Default: false + + + + + Sets the <code>Data Channel Protection Level</code>. Default: C + + + + + + + + + + + + + + + + + + + If <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=POST</code> and <code>postType=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 content + + + + + If set and <code>methodType=POST</code> and <code>paramsInUrl=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: false + + + + + If <code>true</code>, the input will be added to the URL for <code>methodType=GET</code>, or for <code>methodType=POST</code>, <code>PUT</code> or + <code>PATCH</code> if <code>postType=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 response + + + + + + + The functional name of the object. + + + + + + + + Timeout in ms of obtaining a connection/result. Default: 10000 + + + + + + + Authentication alias used for authentication to the host + + + + + Username used for authentication to the host + + + + + Password used for authentication to the host + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Timeout in ms of obtaining a connection/result. Default: 10000 + + + + + + + Authentication alias used for authentication to the host + + + + + Username used for authentication to the host + + + + + Password used for authentication to the host + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ServiceName 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 classpath + + + + + + + + + + + + + + + + Name 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 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. + + + + + If set <code>false</code>, the call is made asynchronously. This implies <code>isolated=true</code> Default: true + + + + + If <code>true</code>, the call is made in a separate thread, possibly using separate transaction Default: false + + + + + If <code>true</code>, the sender waits upon open until the called JavaListener is opened Default: true + + + + + Maximum time (in seconds) the sender waits for the listener to start. A value of -1 indicates to wait indefinitely Default: 60 + + + + + If set <code>false</code>, the xml-string \"&lt;error&gt;could not find JavaListener [...]&lt;/error&gt;\" is returned instead of throwing a senderexception Default: true + + + + + + + + + + + + + + + + + + + + + This 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 certificates + + + + + The password used to access the keystore + + + + + The AuthAlias used to access the keystore + + + + + This 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 .pfx + + + + + In case the merchant certificate has been password protected + + + + + In case the merchant certificate has been password protected + + + + + 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 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 protected + + + + + In case the SAML certificate has been password protected + + + + + + + + + + + Load 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 functions + + + + + Name of the parameter used to indicate the name of the SapSystem used by this object if the attribute <code>sapSystemName</code> is empty Default: sapSystemName + + + + + + + + + + + + + + + + The hostname of the IMAP server + + + + + The port of the IMAP server Default: 993 + + + + + Alias 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 used + + + + + Comma separated list of fields to try as response address Default: <code>replyTo,from,sender,Return-Path</code> + + + + + + + + + + + + + + + + + + + + + + + + + + + the name of the javascript file containing the functions to run + + + + + the name of the javascript function that will be called (first) Default: main + + + + + the name of the JavaScript engine to use. Default: J2V8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + If set, input is taken from this session key, instead of regular input + + + + + If set, this fixed value is taken as input, instead of regular input + + + + + If set <code>true</code>, the input of a pipe is restored before processing the next one Default: false + + + + + If set, the result is stored under this session key + + + + + If set, the input is stored under this session key + + + + + + + + + + + + + + + + When <code>true</code>, the xml result of the transformation is converted back to json Default: true + + + + + Namespace 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/json + + + + + + + + If 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.default + + + + + Location of stylesheet to apply to the input message + + + + + Session key to retrieve stylesheet location. Overrides stylesheetName or xpathExpression attribute + + + + + Size of cache of stylesheets retrieved from styleSheetNameSessionKey Default: 100 + + + + + Alternatively: XPath-expression to create stylesheet from + + + + + Omit 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 stylesheet + + + + + If 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 stylesheet + + + + + For xpathExpression only Default: text + + + + + + + + If 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 stylesheet + + + + + If set <code>true</code> namespaces (and prefixes) in the input message are removed before transformation Default: false + + + + + If 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: false + + + + + If set <code>true</code> empty tags in the output are removed after transformation Default: false + + + + + 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: 0 + + + + + + + + + + + + + + If 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.default + + + + + Location of stylesheet to apply to the input message + + + + + Session key to retrieve stylesheet location. Overrides stylesheetName or xpathExpression attribute + + + + + Size of cache of stylesheets retrieved from styleSheetNameSessionKey Default: 100 + + + + + Alternatively: XPath-expression to create stylesheet from + + + + + Omit 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 stylesheet + + + + + If 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 stylesheet + + + + + Namespace 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 namespace + + + + + For xpathExpression only Default: text + + + + + + + + If 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 stylesheet + + + + + If set <code>true</code> namespaces (and prefixes) in the input message are removed before transformation Default: false + + + + + If 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: false + + + + + If set <code>true</code> empty tags in the output are removed after transformation Default: false + + + + + 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: 0 + + + + + + + + + + + + + + + + + + + + + + Specifies LDAP operation to perform Default: read + + + + + + + + URL 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: attribute + + + + + + + + Comma 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 otherwise + + + + + Specifies the time (in ms) that is spent searching for results for operation search Default: 20000 + + + + + Key of session variable used to store cause of errors Default: errorReason + + + + + The maximum number of entries to be returned by a search query, or <code>0</code> for unlimited Default: 0 + + + + + When <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 '&lt;ldapresult&gt;object not found&lt;/ldapresult&gt;' is returned instead of the PartialResultException 'unprocessed continuation reference(s)' Default: false + + + + + + + + + + + + + + + + Path 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 used + + + + + Whether the LocalFileSystem tries to create the root folder if it doesn't exist yet. Default: false + + + + + + + + + + + + + + + + category under which messages are logged Default: name of the sender + + + + + level on which messages are logged Default: info + + + + + + + + + + + + + + + + Name of the SMTP-host by which the messages are to be send + + + + + Port of the SMTP-host by which the messages are to be send Default: 25 + + + + + When set to true, we ensure TLS is being used Default: false + + + + + + + + + + + authAlias used to obtain credentials for authentication + + + + + + password of userid + + + + + + + Timeout <i>in milliseconds</i> for socket connection timeout and socket i/o timeouts Default: 20000 + + + + + + + + + + + + + + + + + + + + + + + + + + Comma 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: true + + + + + + + + + + + + + + + + The MongoDB datasource Default: <code>mongodb.datasource.default</code> + + + + + Database to connect to. Can be overridden by parameter <code>database</code> + + + + + Collection to act upon. Can be overridden by parameter <code>collection</code> + + + + + Action + + + + + + + + Filter. Can contain references to parameters between <code>?{</code> and <code>}</code>. Can be overridden by parameter <code>filter</code> + + + + + Limit to number of results returned. A value of 0 means 'no limit'. Can be overridden by parameter <code>limit</code>. Default: 0 + + + + + Only for find operation: return only the count and not the full document(s) Default: false + + + + + OutputFormat Default: JSON + + + + + + + + Format 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 used + + + + + + + + At the time of writing, NetStorage only supports version 1 Default: 1 + + + + + NetStorage CP Code of the storage group + + + + + The destination URL for the Akamai NetStorage. (Only the hostname, without CpCode; eq. xyz-nsu.akamaihd.net) + + + + + Login is done via a Nonce and AccessToken + + + + + Version to validate queries made to NetStorage backend. Default: 5 + + + + + Login is done via a Nonce and AccessToken + + + + + Root 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 response + + + + + + + The functional name of the object. + + + + + Timeout in ms of obtaining a connection/result. Default: 10000 + + + + + + + Username used for authentication to the host + + + + + Password used for authentication to the host + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + Set the upper limit to the amount of concurrent threads that can be run simultaneously. Use 0 to disable. Default: 0 + + + + + + + + + + + + + + + + - - - - - 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> - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + reload the configuration regardless of the version Default: false + + + + + + + + + + + + + + + + type of the optional status field which is set after the row is written to the file: timestamp + + + + + Key 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: false + + + + + If set (and &gt;=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 processed + + + + + + + + + + + + + + + + The destination, aka smb://xxx/yyy share + + + + + The SMB share username + + + + + The SMB share password + + + + + Alias used to obtain credentials for the SMB share + + + + + logon/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: false + + + + + controls whether hidden files are seen or not Default: false + + + + + + + + + + + + + + + + Hostname of the SMB share. + + + + + Port to connect to. Default: 445 + + + + + Type 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: SPNEGO + + + + + + + + alias used to obtain credentials for the smb share + + + + + the smb share username + + + + + the smb share password + + + + + NTLM 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: false + + + + + Name of the RFC-function to be called in the SAP system + + + + + Name of the parameter used to obtain the functionName from if the attribute <code>functionName</code> is empty Default: functionName + + + + + + + + + + + + + + + + Timeout in ms of obtaining a connection/result. Default: 10000 + + + + + The maximum number of concurrent connections Default: 10 + + + + + The maximum number of times the execution is retried Default: 1 (for repeatable messages) else 0 + + + + + Proxy host + + + + + Proxy port Default: 80 + + + + + Alias used to obtain credentials for authentication to proxy + + + + + Proxy username + + + + + Proxy password + + + + + Proxy realm + + + + + resource URL to keystore or certificate to be used for authentication. If none specified, the JVMs default keystore will be used. + + + + + Type of keystore Default: pkcs12 + + + + + + + + Authentication alias used to obtain keystore password + + + + + Default password to access keystore + + + + + Alias to obtain specific certificate or key in keystore + + + + + Authentication 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 algorithm + + + + + Resource URL to truststore to be used for authenticating peer. If none specified, the JVMs default truststore will be used. + + + + + Type of truststore Default: jks + + + + + + + + Authentication alias used to obtain truststore password + + + + + Default password to access truststore + + + + + Trust manager algorithm. Can be left empty to use the servers default algorithm + + + + + If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer Default: false + + + + + If <code>true</code>, self signed certificates are accepted Default: false + + + + + If <code>true</code>, CertificateExpiredExceptions are ignored Default: false + + + + + If <code>true</code>, a redirect request will be honoured, e.g. to switch to HTTPS Default: true + + + + + Controls whether connections checked to be stale, i.e. appear open, but are not. Default: true + + + + + Used when <code>staleChecking</code> is <code>true</code>. Timeout after which an idle connection will be validated before being used. Default: 5000 ms + + + + + Secure socket protocol (such as 'TLSv1.2') to use when a SSLContext object is generated. Default: TLSv1.2 + + + + + + + + authAlias used to obtain credentials for authentication + + + + + + password of userid + + + + + + + + + + + + + + + + + + + + - - - - - Manager that decides the handlers based on the content of a field in the specified - position in a record. The fields in the record are separated by a separator. - The value of the specified field is taken as key in the flow-table. - - - - - - - - - - - - Manager that decides the handlers based on the content of a field in the specified - position in a record. The fields in the record are of a fixed length. - The data beween the start position and end position is taken as key in the flow-table. - - - - - - - - - - + + + + + - - - - + + + + + + + + + Path of the file or directory to start working. Default: Home folder of the sftp user + + + + + Name or ip address of remote host + + + + + Port number of remote host Default: 21 + + + + + Name of the alias to obtain credentials to authenticatie on remote server + + + + + Name of the user to authenticatie on remote server + + + + + Password to authenticatie on remote server + + + + + Proxy hostname + + + + + Proxy port Default: 1080 + + + + + alias to obtain credentials to authenticate on proxy + + + + + Default user name in case proxy requires authentication + + + + + Default password in case proxy requires authentication + + + + + Transport type in case of sftp Default: SOCKS5 + + + + + + + + Optional preferred encryption from client to server for sftp protocol + + + + + Optional preferred encryption from server to client for sftp protocol + + + + + Path to private key file for sftp authentication + + + + + Name of the alias to obtain credentials for passphrase of private key file + + + + + Passphrase of private key file + + + + + Path to file with knownhosts + + + + + Verify the hosts againt the knownhosts file. Default: true + + + + + + + + + + + + + + + + Name of the sender that is considered that is considered to be the golden standard, i.e. the source of truth. Default: the first sender specified + + + + + The sender name which will process the results Default: the last sender specified + + + + + If 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: false + + + + + + + + + + + + + + + + A 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 AbstractJdbcQuerySender.QueryType#SELECT and AbstractJdbcQuerySender.QueryType#OTHER. + Use AbstractJdbcQuerySender.QueryType#SELECT when your stored procedure returns a row set (not supported by Oracle and PostgreSQL). + Use AbstractJdbcQuerySender.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: OTHER + + + + + + + + + + + + + + + + + + + + If set, the SQL dialect in which the queries are written and should be translated from to the actual SQL dialect + + + + + + + + + + + + + + + + + + when <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: true + + + + + the soapactionuri to be set in the requestheader + + + + + parameter to obtain the soapactionuri + + + + + the encodingstyle to be set in the messageheader + + + + + controls whether soap faults generated by the application generate an exception, or are treated as 'normal' messages Default: true + + + + + 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 + + + + + parameter to obtain the servicenamespace + + + + + namespace 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>-definitions + + + + + username used to obtain credentials for authentication to web services security + + + + + password used to obtain credentials for authentication to web services security + + + + + alias used to obtain credentials for authentication to web services security + + + + + when 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 response + + + + + + + The functional name of the object. + + + + + Timeout in ms of obtaining a connection/result. Default: 10000 + + + + + + + Authentication alias used for authentication to the host + + + + + Username used for authentication to the host + + + + + Password used for authentication to the host + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - position of field that identifies the recordtype (position of first field is 1) + one of create, append or replace + + + - + + + remote directory is prefixed witht the remote file + + + + + + + + + + characterset conversion + + + + + + + + + + + + + name of logfile for xcomtcp to be used + + + + + password of user on remote system + + + + + port of remote host + + + + + set queue off or on + + + + + hostname or tcpip adres of remote host + + + + + set between 0 (no trace) and 10 + + + + + set truncation off or on + + + + + loginname of user on remote system + + + + + remote file to create. if empty, the name is equal to the local file + + + + + directory in which to run the xcomtcp command + + + + + path to xcomtcp command + + + + + + name of the alias to obtain credentials to authenticatie on remote server + + + + + + + + + + + + + + + + Full pathname to the XFB script to be executed to transfer the file + + + + + + + + + When 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: false + + + + + If set: key of session variable to store reasons of mis-validation in Default: failureReason + + + + + Like <code>reasonSessionKey</code> but stores reasons in xml format and more extensive Default: xmlFailureReason + + + + + If 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: false + + + + + Characterset used for reading file, only used when <code>validateFile</code> is <code>true</code> Default: utf-8 + + + + + If 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 <code>XSD_VALIDATION_WARNINGS_SUPPRESS_KEY</code>, <code>XSD_VALIDATION_ERROR_SUPPRESS_KEY</code> and <code>XSD_VALIDATION_FATAL_ERROR_SUPPRESS_KEY</code> Default: true + + + - separator that separates the fields in the record + Ignore namespaces in the input message which are unknown Default: true when <code>schema</code> or <code>noNamespaceSchemaLocation</code> is used, false otherwise - - - - - - - - - - - - - - - - - + - Name of the manager + If set <code>true</code>, the number for caching validators in appConstants is ignored and no caching is done (for this validator only) Default: false - + - This manager is the initial manager, i.e. to be used for the first record Default: false + If 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> - - - - + + + + - - - - Start position of the field in the record that identifies the recordtype (first character is 0) Default: 0 - - - + + + + + + - If endposition &gt;= 0 then this field contains the endPosition of the recordtype field in the record; All characters beyond this position are ignored. Else, if endPosition &lt; 0 then it depends on the length of the recordkey in the flow Default: -1 + 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: collection - - - + + + - - - - - - - - - - - - - - - - - - Basic InputStreamReaderFactory. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -12747,7 +11438,7 @@ - + @@ -12817,7 +11508,7 @@ - + @@ -13051,7 +11742,7 @@ - + @@ -13777,8 +12468,8 @@ Pipe that throws an exception, based on the input message. - - `success` forward is used when `throwException` is false, `exception` is used otherwise. + <br/> + The `success` forward is only used when the (deprecated) attribute `throwException` has been set to `false`, otherwise the (default) `exception` forward will be used.<br><br><b>WARNING</b><p>The attribute `throwException` has been deprecated and thus the `success` forward will be removed along with the `throwException` attribute.</p> @@ -13801,50 +12492,39 @@ <h3>For using a 'resultString'</h3> You can use the EchoPipe for a static value. This looked like this before: - <pre> - <code>&lt;pipe name=&quot;HelloWorld&quot; className=&quot;org.frankframework.pipes.FixedResult&quot; returnString=&quot;Hello World&quot;&gt; + <pre><code>&lt;pipe name=&quot;HelloWorld&quot; className=&quot;org.frankframework.pipes.FixedResult&quot; returnString=&quot;Hello World&quot;&gt; &lt;forward name=&quot;success&quot; path=&quot;EXIT&quot;/&gt; - &lt;/pipe&gt;</code> - </pre> + &lt;/pipe&gt;</code></pre> Becomes: - <pre> - <code>&lt;pipe name=&quot;HelloWorld&quot; className=&quot;org.frankframework.pipes.EchoPipe&quot; getInputFromFixedValue=&quot;Hello World&quot;&gt; + <pre><code>&lt;pipe name=&quot;HelloWorld&quot; className=&quot;org.frankframework.pipes.EchoPipe&quot; getInputFromFixedValue=&quot;Hello World&quot;&gt; &lt;forward name=&quot;success&quot; path=&quot;EXIT&quot;/&gt; - &lt;/pipe&gt;</code> - </pre> + &lt;/pipe&gt;</code></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>&lt;pipe name=&quot;make unique message&quot; className=&quot;org.frankframework.pipes.FixedResultPipe&quot; + <pre><code>&lt;pipe name=&quot;make unique message&quot; className=&quot;org.frankframework.pipes.FixedResultPipe&quot; returnString=&quot;&amp;lt;msg mid=&amp;quot;MID&amp;quot; action=&amp;quot;ACTION&amp;quot; /&amp;gt;&quot; replaceFixedParams=&quot;true&quot;&gt; &lt;param name=&quot;MID&quot; sessionKey=&quot;mid&quot; /&gt; &lt;param name=&quot;ACTION&quot; xpathExpression=&quot;request/@action&quot; /&gt; - &lt;/pipe&gt;</code> - </pre> + &lt;/pipe&gt;</code></pre> And can now be written like this (note the ?{..} syntax): - <pre> - <code>&lt;pipe name=&quot;make unique message&quot; className=&quot;org.frankframework.pipes.ReplacerPipe&quot; + <pre><code>&lt;pipe name=&quot;make unique message&quot; className=&quot;org.frankframework.pipes.ReplacerPipe&quot; getInputFromFixedValue=&quot;&amp;lt;msg mid=&amp;quot;?{MID}&amp;quot; action=&amp;quot;?{ACTION}&amp;quot; /&amp;gt;&quot;&gt; &lt;param name=&quot;MID&quot; sessionKey=&quot;mid&quot; /&gt; &lt;param name=&quot;ACTION&quot; xpathExpression=&quot;request/@action&quot; /&gt; - &lt;/pipe&gt;</code> - </pre> + &lt;/pipe&gt;</code></pre> When you need to replace a fixed value use the ReplacerPipe with find and replace. This looked like this: - <pre> - <code>&lt;FixedResultPipe name=&quot;InputValidateError&quot; + <pre><code>&lt;FixedResultPipe name=&quot;InputValidateError&quot; filename=&quot;ManageFileSystem/xml/ErrorMessage.xml&quot; replaceFrom=&quot;%reasonCode&quot; replaceTo=&quot;NOT_WELL_FORMED_XML&quot;&gt; &lt;forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; - &lt;/FixedResultPipe&gt;</code> - </pre> + &lt;/FixedResultPipe&gt;</code></pre> And now should be solved like this: - <pre> - <code>&lt;FixedResultPipe name=&quot;InputValidateError&quot; + <pre><code>&lt;FixedResultPipe name=&quot;InputValidateError&quot; filename=&quot;ManageFileSystem/xml/ErrorMessage.xml&quot;&gt; &lt;forward name=&quot;success&quot; path=&quot;replaceReasonCode&quot; /&gt; &lt;/FixedResultPipe&gt; @@ -13852,15 +12532,13 @@ find=&quot;%reasonCode&quot; replace=&quot;NOT_WELL_FORMED_XML&quot;&gt; &lt;forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; - &lt;/ReplacerPipe&gt;</code> - </pre> + &lt;/ReplacerPipe&gt;</code></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>&lt;CompareStringPipe name=&quot;compareIdAndCid&quot; &gt; + <pre><code>&lt;CompareStringPipe name=&quot;compareIdAndCid&quot; &gt; &lt;param name=&quot;operand1&quot; sessionKey=&quot;id&quot;/&gt; &lt;param name=&quot;operand2&quot; sessionKey=&quot;cid&quot;/&gt; &lt;forward name=&quot;equals&quot; path=&quot;IdAndCidSame&quot; /&gt; @@ -13881,12 +12559,10 @@ &lt;param name=&quot;CID&quot; sessionKey=&quot;cid&quot; /&gt; &lt;param name=&quot;SAME&quot; sessionKey=&quot;IdAndCidSame&quot; /&gt; &lt;forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; - &lt;/pipe&gt;</code> - </pre> + &lt;/pipe&gt;</code></pre> Was rewritten to the following: - <pre> - <code>&lt;CompareStringPipe name=&quot;compareIdAndCid&quot; &gt; + <pre><code>&lt;CompareStringPipe name=&quot;compareIdAndCid&quot; &gt; &lt;param name=&quot;operand1&quot; sessionKey=&quot;id&quot;/&gt; &lt;param name=&quot;operand2&quot; sessionKey=&quot;cid&quot;/&gt; &lt;forward name=&quot;equals&quot; path=&quot;IdAndCidSame&quot; /&gt; @@ -13910,8 +12586,7 @@ &lt;param name=&quot;CID&quot; sessionKey=&quot;cid&quot; /&gt; &lt;param name=&quot;SAME&quot; sessionKey=&quot;IdAndCidSame&quot; /&gt; &lt;forward name=&quot;success&quot; path=&quot;EXIT&quot; /&gt; - &lt;/pipe&gt;</code> - </pre> + &lt;/pipe&gt;</code></pre> <p> <h2>The features/documentation of the deprecated features</h2> @@ -14003,7 +12678,7 @@ 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 + available on the DTAP 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}). @@ -14092,6 +12767,100 @@ + + + Selects a forward based on an expression. The expression type is coupled to the mediaType: + <ul> + <li>XML (application/xml) uses Xpath</li> + <li>JSON (application/json) uses jsonPath</li> + </ul> + The XML mediaType is the default type, if you want to use json, you need to set this using 'mimeType' in the Message. + + <h4>Expressions</h4> + Expressions are used to select nodes in the given input document. Imagine a collection of books: + <pre><code>{ + &quot;store&quot;: { + &quot;book&quot;: [ + { + &quot;category&quot;: &quot;reference&quot;, + &quot;author&quot;: &quot;Nigel Rees&quot;, + &quot;title&quot;: &quot;Sayings of the Century&quot;, + &quot;price&quot;: 8.95 + }, + { + &quot;category&quot;: &quot;fiction&quot;, + &quot;author&quot;: &quot;Evelyn Waugh&quot;, + &quot;title&quot;: &quot;Sword of Honour&quot;, + &quot;price&quot;: 12.99 + }, + { + &quot;category&quot;: &quot;fiction&quot;, + &quot;author&quot;: &quot;Herman Melville&quot;, + &quot;title&quot;: &quot;Moby Dick&quot;, + &quot;isbn&quot;: &quot;0-553-21311-3&quot;, + &quot;price&quot;: 8.99 + }, + { + &quot;category&quot;: &quot;fiction&quot;, + &quot;author&quot;: &quot;J. R. R. Tolkien&quot;, + &quot;title&quot;: &quot;The Lord of the Rings&quot;, + &quot;isbn&quot;: &quot;0-395-19395-8&quot;, + &quot;price&quot;: 22.99 + } + ] + } + }</code></pre> + <p> + With both expression languages you'll be able to select one or multiple nodes from this collection. + <br/> + Using this pipe there are two options. Use it only with an <code>expression</code> or combine it with an <code>expressionValue</code>. When using the expression, + the pipe evaluates to <code>thenForwardName</code> when <em>there is a match</em>, even it is empty. In the given example, this might be one of: + <pre><code>$.store + $.store.book[1] + $.store.book[?(@.price == 22.99)].author + $.store.book[?(@.category == 'fiction')]</code></pre> + + <h4>expressionValue</h4> + When using expression combined with expressionValue, the pipe evaluates to <code>thenForwardName</code> when the <em>the matched value is equal to + expressionValue</em>. This needs to be an exact match. + <br/> + + <h4>XML/XPATH</h4> + Xpath has been around a long time, information about the syntax can be found everywhere on the internet. + The XML implementation wraps the Xpath expression in an XSL. This enables us to use complex expressions which evaluate to true or false instead of + being used only as a selector of nodes in the input XML. This is available to be backwards compatible with the XmlIf pipe. + For instance, take the following example input: + <pre><code>&lt;results&gt; + &lt;result name=&quot;test&quot;&gt;&lt;/result&gt; + &lt;result name=&quot;test&quot;&gt;&lt;/result&gt; + &lt;/results&gt;</code></pre> + Examples with complex expressions might be something like: <code>number(count(/results/result[contains(@name , 'test')])) &gt; 1</code>, to test if there's more + than one node found containing the string 'test'. Please check if a simpler, less error-prone expression like + <code>/results/result[contains(@name, 'test')]</code> can suffice. + <p></p> + + <h4>Without expression</h4> + Without an expression, the default behaviour is to assume the input is a string, the code will try to match the string to an optional regular expression + or tries to match the string value to the optional expressionValue. + <p></p> + + <h4>Resources</h4> + <ul> + <li><a href="https://github.com/json-path/JsonPath">JsonPath / Jayway implementation including examples</a></li> + <li><a href="https://jsonpath.fly.dev/">JsonPath online evaluator</a></li> + <li><a href="https://www.w3schools.com/xml/xpath_syntax.asp">Xpath syntax</a></li> + <li><a href="https://www.freeformatter.com/xpath-tester.html">Xpath online evaluator</a></li> + <li><a href="https://en.wikipedia.org/wiki/XPath">Xpath information and history</a></li> + </ul> + + + + + + + + + Pipe that increases the integer value of a session variable. @@ -14577,16 +13346,15 @@ 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>If the attribute <code>find</code> is provided, the pipe will attempt to replace the provided value with the content of the attribute <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. + with <code>?{...}</code>, for instance text like: <code>?{parameterOne}</code> in combination with a parameter <code>parameterOne</code> will use the value of this Parameter. + If a parameter for the given value is not found, it will not be replaced and the <code>?{parameterOne}</code> value will remain in the output.</li> <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> + </ol><br><br><b>TIP</b><p>See Parameter to see how parameter values are determined.</p> @@ -14935,18 +13703,6 @@ - - - Selects a forward, based on XPath evaluation - - - - - - - - - Selects an exitState, based on either the content of the input message, by means @@ -15052,7 +13808,7 @@ Transformation direction. Default: Adios2Xml - + @@ -15115,7 +13871,7 @@ - + @@ -15331,7 +14087,7 @@ Default: ENCODE - + @@ -15437,7 +14193,7 @@ - + @@ -15457,11 +14213,7 @@ Alternatively: xpath-expression to create stylesheet from - - - 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. - - + Only valid for xpathexpression Default: text @@ -15611,11 +14363,7 @@ Alternatively: xpath-expression to create stylesheet from - - - 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. - - + Only valid for xpathexpression Default: text @@ -16166,6 +14914,55 @@ + + + + + + + + + a 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'-forward + + + + + xpath expression to be applied to the input-message. if not set, no transformation is done when the input message is mediatype XML + + + + + jsonPath expression to be applied to the input-message. if not set, no transformation is done when the input message is mediatype JSON + + + + + 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) Default: 2 + + + + + namespace 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: true + + + + + Default: DefaultMediaType.XML + + + + + + + + + + @@ -16595,9 +15392,9 @@ - + - + Url to context to search in, e.g. 'ldaps://DOMAIN.EXT'. @@ -16645,8 +15442,8 @@ - - + + @@ -16673,7 +15470,7 @@ - + @@ -16695,9 +15492,9 @@ - + - + If parameter [<code>action</code>] is set, then the attribute action value will be overridden with the value of the parameter. @@ -16794,8 +15591,8 @@ - - + + @@ -16835,7 +15632,7 @@ Default: OBFUSCATE - + @@ -16854,7 +15651,7 @@ Action to be taken when pipe is executed. - + @@ -17368,7 +16165,7 @@ - + @@ -17438,7 +16235,7 @@ - + @@ -17553,7 +16350,7 @@ - + @@ -17575,7 +16372,7 @@ Action to be taken when pipe is executed. Default: SIGN - + @@ -17885,70 +16682,24 @@ - - - - - - - name of the file (resource) on the classpath to read the xquery from - - - - - name of the file on the file system to read the xquery from - - - - - - - - - - - - - - - - a 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'-forward - - - - - forward returned when output is <code>true</code> Default: then - - - - - forward returned when output is <code>false</code> Default: else - - - - - xpath expression to be applied to the input-message. if not set, no transformation is done - - - - - 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) Default: 2 - - - + + + + + - namespace definitions for xpathExpression. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code> definitions. + name of the file (resource) on the classpath to read the xquery from - + - controls namespace-awareness of XSLT transformation Default: true + name of the file on the file system to read the xquery from - - - + + + @@ -18051,15 +16802,15 @@ - + - + Collectors must be opened before you can write content to them, after it's closed you can no longer write to it. Default: WRITE - + @@ -18068,8 +16819,8 @@ - - + + @@ -19297,7 +18048,7 @@ - + @@ -19325,14 +18076,14 @@ - + - + - + Group in which to sort multiple jobs. Default: Name of the Configuration this job has been specified in. @@ -19372,17 +18123,17 @@ - - + + - - + + - + @@ -19395,11 +18146,11 @@ - + - + @@ -19410,11 +18161,11 @@ - + - + @@ -19437,20 +18188,20 @@ - + - - + + - - + + - + @@ -19468,7 +18219,7 @@ - + @@ -19492,7 +18243,7 @@ - + @@ -19522,15 +18273,15 @@ - + - + - + The functional name of the object. @@ -19770,6 +18521,12 @@ + + + + + + @@ -19949,8 +18706,12 @@ + + + Currently only used by the SignaturePipe to use a PEM certificate directly as a truststore. + + - @@ -20037,695 +18798,601 @@ - - - - - - - + - - - list files in a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input message - - - - - show info about a single file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message - - - - - read a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message - - - - - like <code>read</code>, but deletes the file after it has been read - - - - - move 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> + Fire & Forget protocol - + - delete a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message + Request-Reply protocol - + + + + + - create a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input message + use the generated messageId as the correlationId in the selector for response messages - + - remove a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input message + set the correlationId of the pipeline as the correlationId of the message sent, and use that as the correlationId in the selector for response messages - + - Creates 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. + do 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 messages - + + + + + - (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. + to mask the entire string - + - create empty file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message + to only mask the first half of the string - + + + + + + + + + + + + - change 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> + Don't stop the receiver when an error occurs. - + - (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> + 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. - + - Specific to FileSystemSenderWithAttachments + Stop the receiver when an error occurs. - + - - - + + - + - - - Create a document - - - + - Delete a document + Support a current transaction; create a new one if none exists. - + - Get the content of a document (and optional the properties) + Support a current transaction; execute non-transactionally if none exists. - + - Perform a query that returns properties + Support a current transaction; throw an exception if no current transaction exists. - + - Update the properties of an existing document + Create a new transaction, suspending the current transaction if one exists. - + - Get the (meta)data of a folder or document + Do not support a current transaction; rather always execute non-transactionally. - + - Determine action based on the incoming CmisEvent + Do not support a current transaction; throw an exception if a current transaction exists. - - - - - - - - + - - - For queries that return data - - - + - For queries that update a BLOB + Temporary - + - For queries that update a CLOB + Permanent - + + + + + + + - To execute Oracle PL/SQL package + No wrapping or unwrapping will be done - + - For queries that return no data + Try to auto-detect the value - - - - - - - - - Fire & Forget protocol - - - - - Request-Reply protocol - - + + - + - + - use the generated messageId as the correlationId in the selector for response messages + ifsa2tibco - + - set the correlationId of the pipeline as the correlationId of the message sent, and use that as the correlationId in the selector for response messages + Regular - + - do 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 messages + Business Integration Services - + - - - - + + - + - + + + + + + + + + + + + + + + + + + + + - The input message is sent unchanged as character data, like text, XML or JSON, with possibly parameter data appended + list files in a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input message - + - The input message is sent unchanged as binary data + show info about a single file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message - + - Yields a x-www-form-urlencoded form entity + read a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message - + - Yields a multipart/form-data form entity + like <code>read</code>, but deletes the file after it has been read - + - Yields a MTOM multipart/related form entity + move 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> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - Read 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> + 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> - + - 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> + delete a file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message - + - 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> + create a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input message - + - 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> + remove a folder/directory, specified by attribute <code>inputFolder</code>, parameter <code>inputFolder</code> or input message - + - 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 'attributesToReturn' containing attributes to be returned</li> - </ul> + Creates 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. - + - 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 'attributesToReturn' containing attributes to be returned</li> - </ul> + (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. - + - 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 'attributesToReturn' containing attributes to be returned</li> - </ul> + create empty file, specified by attribute <code>filename</code>, parameter <code>filename</code> or input message - + - 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 'attributesToReturn' containing attributes to be returned</li> - </ul> + change 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> - + - 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> + (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> - + - 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> + Specific to FileSystemSenderWithAttachments - - - - - - - + - - - + + + - + - + - to mask the entire string + Create a document - + - to only mask the first half of the string + Delete a document - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - Don't stop the receiver when an error occurs. + Get the content of a document (and optional the properties) - + - 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. + Perform a query that returns properties - + - Stop the receiver when an error occurs. + Update the properties of an existing document + + + + + Get the (meta)data of a folder or document + + + + + Determine action based on the incoming CmisEvent - + - - + + + - + - - - Support a current transaction; create a new one if none exists. - - - + - Support a current transaction; execute non-transactionally if none exists. + For queries that return data - + - Support a current transaction; throw an exception if no current transaction exists. + For queries that update a BLOB - + - Create a new transaction, suspending the current transaction if one exists. + For queries that update a CLOB - + - Do not support a current transaction; rather always execute non-transactionally. + To execute Oracle PL/SQL package - + - Do not support a current transaction; throw an exception if a current transaction exists. + For queries that return no data - + - + + + + + + + + + + + + + + + - 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 required + The input message is sent unchanged as character data, like text, XML or JSON, with possibly parameter data appended - + - Renders an xml-nodeset as an xml-string (in combination with xslt or xpath). This will include the xml tags + The input message is sent unchanged as binary data - + - Renders 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... + Yields a x-www-form-urlencoded form entity - + - 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) + Yields a multipart/form-data form entity - + - 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 used + Yields a MTOM multipart/related form entity - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - Converts the result to a Date, by default using formatString <code>HH:mm:ss</code>. - When applied as a JDBC parameter, the method setTime() is used + Read 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> - + - Converts 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 used + 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> - + - Similar to <code>DATETIME</code>, except for the formatString that is <code>yyyy-MM-dd HH:mm:ss.SSS</code> by default + 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> - + - Converts the result from a XML formatted dateTime to a Date. - When applied as a JDBC parameter, the method setTimestamp() is used + 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> - + - Converts the result to a Number, using decimalSeparator and groupingSeparator. - When applied as a JDBC parameter, the method setDouble() is used + 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 'attributesToReturn' containing attributes to be returned</li> + </ul> - + - Converts the result to an Integer + 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 'attributesToReturn' containing attributes to be returned</li> + </ul> - + - Converts the result to a Boolean + 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 'attributesToReturn' containing attributes to be returned</li> + </ul> - + - Forces 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 used + 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 'attributesToReturn' containing attributes to be returned</li> + </ul> - + - Forces 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 used + 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> - + - Used for StoredProcedure OUT parameters when the database type is a <code>CURSOR</code> 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 (&lt;items&gt;&lt;item&gt;...&lt;/item&gt;&lt;item&gt;...&lt;/item&gt;&lt;/items&gt;) + 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> - + - - - Temporary - - - - - Permanent - - + + - + - - - - - No wrapping or unwrapping will be done - - - - - Try to auto-detect the value - - + + + + + + + + - + - - + + + - + - - - ifsa2tibco - - - - - Regular - - - - - Business Integration Services - - + + + + + + + + + + + + + + + + - + - - + + + + + + - + - - + + - + - - - + + + + + + + - + @@ -20782,6 +19449,92 @@ + + + + + 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 required + + + + + Renders an xml-nodeset as an xml-string (in combination with xslt or xpath). This will include the xml tags + + + + + 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 used + + + + + Converts the result to a Date, by default using formatString <code>HH:mm:ss</code>. + When applied as a JDBC parameter, the method setTime() is used + + + + + Converts 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 used + + + + + Similar to <code>DATETIME</code>, except for the formatString that is <code>yyyy-MM-dd HH:mm:ss.SSS</code> by default + + + + + Converts the result from a XML formatted dateTime to a Date. + When applied as a JDBC parameter, the method setTimestamp() is used + + + + + Converts the result to a Number, using decimalSeparator and groupingSeparator. + When applied as a JDBC parameter, the method setDouble() is used + + + + + Converts the result to an Integer + + + + + Converts the result to a Boolean + + + + + Forces 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 used + + + + + Forces 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 used + + + + + Used for StoredProcedure OUT parameters when the database type is a <code>CURSOR</code> 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 (&lt;items&gt;&lt;item&gt;...&lt;/item&gt;&lt;item&gt;...&lt;/item&gt;&lt;/items&gt;) + + + + @@ -20804,6 +19557,12 @@ + + + + + + @@ -20824,13 +19583,13 @@ - + - + @@ -20887,7 +19646,7 @@ - + @@ -20915,7 +19674,7 @@ - + @@ -20944,153 +19703,57 @@ No logging - - - - - Logs information from adapter level messages - - - - - Logs information from pipe messages - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The 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 itself - - - - - Instead 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 returned - - - - - Comma 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 string - - - - - If set (>=0) and the length of the value of the parameter falls short of this minimum length, the value is padded Default: -1 - - - - - If set (>=0) and the length of the value of the parameter exceeds this maximum length, the length is trimmed to this maximum length Default: -1 - - - - - If 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. - - - - - + + + + + Logs information from adapter level messages + + + + + Logs information from pipe messages + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the JMS destination (queue or topic) to use for sending replies. If <code>useReplyTo=true</code>, @@ -21326,784 +19989,789 @@ Name of the field in the ExportParameterList of the RFC function that contains the whole reply message contents - + - Controls 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> + Parameter that is used, if specified and not empty, to determine the destination. Overrides the <code>destination</code> attribute - + - 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: false + Name 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 - + - When <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: false + (Only used when <code>synchronous=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: MESSAGEID + + + - + - Value used in result as contents of fields that contain no value (sql-null) Default: <i>empty string</i> + Value of the JMSType field Default: not set by application - + - Query that can be used to obtain result of side-effect of update-query, like generated value of sequence. Example: SELECT mysequence.currval FROM dual + Sets 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: -1 - + - Named parameters will be auto-detected by default. Every string in the query which equals <code><code>?{</code>paramname<code>}</code></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. + SOAP encoding style URI - + - 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) + SOAP service namespace URI - + - Remove trailing blanks from all result values. Default: true + Name of parameter containing SOAP header Default: soapHeader - + - When <code>true</code>, the result of sendMessage is the reply of the request. Default: true + session key to store SOAP header of reply Default: replySoapHeader - + - When set to <code>false</code>, the Outputstream is not closed after BLOB or CLOB has been written to it Default: true + A list of JMS headers of the response to add to the PipeLineSession - + - Charset 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 conversion + 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 Pipe - + - If true and scalar=false, multiline indented XML is produced Default: false + The name of the column slotids are stored in Default: SLOTID - + - The 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: false + The name of the column types are stored in Default: TYPE - - - - + - Parameter that is used, if specified and not empty, to determine the destination. Overrides the <code>destination</code> attribute + The name of the column that stores the hostname of the server Default: HOST - + - Name 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 + The name of the sequence used to generate the primary key, for DBMSes that use sequences, like Oracle Default: seq_ibisstore - + - (Only used when <code>synchronous=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: MESSAGEID + If set to <code>true</code>, checks are performed if the table exists and is properly created Default: false - - - - + - Value of the JMSType field Default: not set by application + The type of the column message themselves are stored in - + - Sets 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: -1 + The type of the column that contains the primary key of the table - + - SOAP encoding style URI + The type of the column the timestamps are stored in - + - SOAP service namespace URI + The 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. - + - Name of parameter containing SOAP header Default: soapHeader + 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: 30 - + - session key to store SOAP header of reply Default: replySoapHeader + Schema owner to be used to check the database Default: &lt;current_schema&gt; (only for oracle) - + - A list of JMS headers of the response to add to the PipeLineSession + 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: true - + - When 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: 0 + Set transactionTimeout in seconds. Default: <code>0</code> (use system default) - + - URL or base of URL to be used + 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: Supports + + + - + - Parameter that is used to obtain URL; overrides url-attribute. Default: url + If set, input is taken from this session key, instead of regular input - + - The HTTP Method used to execute the request Default: <code>GET</code> + If set, this fixed value is taken as input, instead of regular input - - - - + - 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> + If set and the input is empty, this fixed value is taken as input - + - Charset of the request. Typically only used on <code>PUT</code> and <code>POST</code> requests. Default: UTF-8 + If 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>) - + - Comma separated list of parameter names which should be set as HTTP headers + 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. - + - Comma 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 parameters + The maximum number of threads that may messages simultaneously. + A value of 0 indicates an unlimited number of threads. Default: 0 - + - If <code>true</code>, the HTML response is transformed to XHTML Default: false + If 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 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. + 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> + } - - + - The maximum number of concurrent connections Default: 10 + (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 element - + - The maximum number of times the execution is retried Default: 1 (for repeatable messages) else 0 + Like <code>elementToMove</code> but element is preceded with all ancestor elements and separated by semicolons (e.g. 'adapter;pipeline;pipe') - + - Endpoint 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 durationThreshold >=0 and the duration of the message processing exceeded the value specified (in milliseconds) the message is logged informatory to be analyzed Default: -1 - + + - 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: -1 + If set <code>true</code>, compacted messages in the result are restored to their original format (see also #setElementToMove(java.lang.String)) - + - Alias used to obtain client_id and client_secret for authentication to <code>tokenEndpoint</code> + Collect and aggregate Message size statistics - + - Client_id used in authentication to <code>tokenEndpoint</code> + when set to <code>true</code> a record is written to the security log when the pipe has finished successfully - + - Client_secret used in authentication to <code>tokenEndpoint</code> + (only used when <code>writeToSecLog=true</code>) comma separated list of keys of session variables that is appended to the security log record - + - Space or comma separated list of scope items requested for accessToken, e.g. <code>read write</code>. Only used when <code>tokenEndpoint</code> is specified + when set, the value in AppConstants is overwritten (for this pipe only) - + - if set true, clientId and clientSecret will be added as Basic Authentication header to the tokenRequest, instead of as request parameters + Regular expression to mask strings in the log. For example, the regular expression <code>(?&lt;=&lt;password&gt;).*?(?=&lt;/password&gt;)</code> + will replace every character between keys '&lt;password&gt;' and '&lt;/password&gt;'. <b>note:</b> this feature is used at adapter level, + so a <code>hideRegex</code> 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</code> for how regular expressions are matched and replaced. - + - Proxy host + 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> - + - Proxy port Default: 80 + 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,) - + - Alias used to obtain credentials for authentication to proxy + Can be used when the SOAP header element exists multiple times - + - Proxy username + SOAP envelope XSD version to use Default: 1.1 + + + - + - Proxy password + Allow 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: false - + - Proxy realm + Ignore 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 otherwise - + - Create a pre-emptive login context for the proxy connection(s). + Pairs 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. - + - Disables the use of cookies, making the sender completely stateless Default: false + A uri reference as a hint as to the location of a schema document with no target namespace. - + - resource URL to keystore or certificate to be used for authentication. If none specified, the JVMs default keystore will be used. + 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 used - + - Type of keystore Default: pkcs12 + 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> - - - - + - Authentication alias used to obtain keystore password + Should the XmlValidator throw a PipeRunexception on a validation error. If not, a forward with name 'failure' must be defined. Default: false - + - Default password to access keystore + If set: key of session variable to store reasons of mis-validation in Default: failureReason - + - Key manager algorithm. Can be left empty to use the servers default algorithm + Like <code>reasonSessionKey</code> but stores reasons in xml format and more extensive Default: xmlFailureReason - + - Alias to obtain specific certificate or key in keystore + If 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: false - + - Authentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + Characterset used for reading file, only used when <code>validateFile</code> is <code>true</code> Default: utf-8 - + - Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code> + If set <code>true</code>, the namespace from schemalocation is added to the schema document as targetnamespace Default: false - + - Resource URL to truststore to be used for authenticating peer. If none specified, the JVMs default truststore will be used. + Comma separated list of schemaLocations which are excluded from an import or include in the schema document - + - Authentication alias used to obtain truststore password + If set <code>true</code>, the comparison for importedSchemaLocationsToIgnore is done on base filename without any path Default: false - + - Default password to access truststore + Comma separated list of namespaces which are excluded from an import or include in the schema document - + - Type of truststore Default: jks + If 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 <code>XSD_VALIDATION_WARNINGS_SUPPRESS_KEY</code>, <code>XSD_VALIDATION_ERROR_SUPPRESS_KEY</code> and <code>XSD_VALIDATION_FATAL_ERROR_SUPPRESS_KEY</code> Default: true - - - - + - Trust manager algorithm. Can be left empty to use the servers default algorithm + If set <code>true</code>, the number for caching validators in appConstants is ignored and no caching is done (for this validator only) Default: false - + - If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer. Note: This attribute is unsafe and should not be used in a production environment. Default: false + If 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> - + - If <code>true</code>, self signed certificates are accepted. Note: This attribute is unsafe and should not be used in a production environment. Default: false + Key of session variable to store the name of the root element - + - If <code>true</code>, CertificateExpiredExceptions are ignored. Note: This attribute is unsafe and should not be used in a production environment. Default: false + Key of session variable to store the namespace of the root element - + - If <code>true</code>, a redirect request will be honoured, e.g. to switch to HTTPS Default: true + Session key for retrieving a schema - + - If true, besides http status code 200 (OK) also the code 301 (MOVED_PERMANENTLY), 302 (MOVED_TEMPORARILY) and 307 (TEMPORARY_REDIRECT) are considered successful Default: false + Controls 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> - + - Controls whether connections checked to be stale, i.e. appear open, but are not. Default: true + 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: false - + - Used when <code>staleChecking</code> is <code>true</code>. Timeout after which an idle connection will be validated before being used. Default: 5000 ms + When <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: false - + - Maximum Time to Live for connections in the pool. No connection will be re-used past its timeToLive value. Default: 900 s + Value used in result as contents of fields that contain no value (sql-null) Default: <i>empty string</i> - + - Maximum Time for connection to stay idle in the pool. Connections that are idle longer will periodically be evicted from the pool Default: 10 s + Query that can be used to obtain result of side-effect of update-query, like generated value of sequence. Example: SELECT mysequence.currval FROM dual - + - Secure socket protocol (such as 'TLSv1.2') to use when a SSLContext object is generated. Default: TLSv1.2 + Named parameters will be auto-detected by default. Every string in the query which equals <code><code>?{</code>paramname<code>}</code></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. - + - Allows you to choose which CipherSuites are used when connecting to an endpoint. Works in tandem with <code>protocol</code> 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. + 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) - + - If set <code>true</code> the input is written to the log file, at DEBUG level Default: false + Remove trailing blanks from all result values. Default: true - + - userId on the smtphost + When <code>true</code>, the result of sendMessage is the reply of the request. Default: true - + - Set the default value of the subject: header, if not specified in message itself + When set to <code>false</code>, the Outputstream is not closed after BLOB or CLOB has been written to it Default: true - + - Set the default from: header, if not specified in message itself + Charset 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 conversion - + - When this name is used, it will be followed by a number which is equal to the node's position Default: attachment + If true and scalar=false, multiline indented XML is produced Default: false - + - when messageType is not specified defaultMessageType will be used Default: text/plain + The 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: false + + + - + - when messageBase64 is not specified defaultMessageBase64 will be used Default: false + When 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: 0 - + - NDR return address when mail cannot be delivered. This adds a Return-Path header Default: MAIL FROM attribute + URL or base of URL to be used - + - Comma separated list of domains to which mails can be send, domains not on the list are filtered out. Empty allows all domains + Parameter that is used to obtain URL; overrides url-attribute. Default: url - + - 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 Pipe + The HTTP Method used to execute the request Default: <code>GET</code> + + + - + - The name of the column slotids are stored in Default: SLOTID + 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> - + - The name of the column types are stored in Default: TYPE + Charset of the request. Typically only used on <code>PUT</code> and <code>POST</code> requests. Default: UTF-8 - + - The name of the column that stores the hostname of the server Default: HOST + Comma separated list of parameter names which should be set as HTTP headers - + - The name of the sequence used to generate the primary key, for DBMSes that use sequences, like Oracle Default: seq_ibisstore + Comma 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 parameters - + - If set to <code>true</code>, checks are performed if the table exists and is properly created Default: false + If <code>true</code>, the HTML response is transformed to XHTML Default: false - + - The type of the column message themselves are stored in + If 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 type of the column that contains the primary key of the table + The maximum number of concurrent connections Default: 10 - + - The type of the column the timestamps are stored in + The maximum number of times the execution is retried Default: 1 (for repeatable messages) else 0 - + - The 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. + Endpoint 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. - + - 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: 30 + 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: -1 - + - Schema owner to be used to check the database Default: &lt;current_schema&gt; (only for oracle) + Alias used to obtain client_id and client_secret for authentication to <code>tokenEndpoint</code> - + - 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: true + Client_id used in authentication to <code>tokenEndpoint</code> - + - Timeout (in seconds) of transaction started to process a message. Default: <code>0</code> (use system default) + Client_secret used in authentication to <code>tokenEndpoint</code> - + - 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: Supports + Space or comma separated list of scope items requested for accessToken, e.g. <code>read write</code>. Only used when <code>tokenEndpoint</code> is specified - - - - + - If set, input is taken from this session key, instead of regular input + if set true, clientId and clientSecret will be added as Basic Authentication header to the tokenRequest, instead of as request parameters - + - If set, this fixed value is taken as input, instead of regular input + Proxy host - + - If set and the input is empty, this fixed value is taken as input + Proxy port Default: 80 - + - If 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>) + Alias used to obtain credentials for authentication to proxy - + - 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. + Proxy username - + - The maximum number of threads that may messages simultaneously. - A value of 0 indicates an unlimited number of threads. Default: 0 + Proxy password - + - If set (>=0) and the character data length inside a xml element exceeds this size, the character data is chomped (with a clear comment) + Proxy realm - + - 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> + } + Create a pre-emptive login context for the proxy connection(s). - + - (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 element + Disables the use of cookies, making the sender completely stateless Default: false - + - Like <code>elementToMove</code> but element is preceded with all ancestor elements and separated by semicolons (e.g. 'adapter;pipeline;pipe') + resource URL to keystore or certificate to be used for authentication. If none specified, the JVMs default keystore will be used. - + - 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: -1 + Type of keystore Default: pkcs12 + + + - - + - If set <code>true</code>, compacted messages in the result are restored to their original format (see also #setElementToMove(java.lang.String)) + Authentication alias used to obtain keystore password - + - Collect and aggregate Message size statistics + Default password to access keystore - + - when set to <code>true</code> a record is written to the security log when the pipe has finished successfully + Key manager algorithm. Can be left empty to use the servers default algorithm - + - (only used when <code>writeToSecLog=true</code>) comma separated list of keys of session variables that is appended to the security log record + Alias to obtain specific certificate or key in keystore - + - when set, the value in AppConstants is overwritten (for this pipe only) + Authentication alias to authenticate access to certificate or key indicated by <code>keystoreAlias</code> - + - Regular expression to mask strings in the log. For example, the regular expression <code>(?&lt;=&lt;password&gt;).*?(?=&lt;/password&gt;)</code> - will replace every character between keys '&lt;password&gt;' and '&lt;/password&gt;'. <b>note:</b> this feature is used at adapter level, - so a <code>hideRegex</code> 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</code> for how regular expressions are matched and replaced. + Default password to authenticate access to certificate or key indicated by <code>keystoreAlias</code> - + - 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> + Resource URL to truststore to be used for authenticating peer. If none specified, the JVMs default truststore will be used. - + - 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,) + Authentication alias used to obtain truststore password - + - Can be used when the SOAP header element exists multiple times + Default password to access truststore - + - SOAP envelope XSD version to use Default: 1.1 + Type of truststore Default: jks - + - + - Allow 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: false + Trust manager algorithm. Can be left empty to use the servers default algorithm - + - Ignore 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 otherwise + If <code>true</code>, the hostname in the certificate will be checked against the actual hostname of the peer. Note: This attribute is unsafe and should not be used in a production environment. Default: false - + - Pairs 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. + If <code>true</code>, self signed certificates are accepted. Note: This attribute is unsafe and should not be used in a production environment. Default: false - + - A uri reference as a hint as to the location of a schema document with no target namespace. + If <code>true</code>, CertificateExpiredExceptions are ignored. Note: This attribute is unsafe and should not be used in a production environment. Default: false - + - 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 used + If <code>true</code>, a redirect request will be honoured, e.g. to switch to HTTPS Default: true - + - 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> + If true, besides http status code 200 (OK) also the code 301 (MOVED_PERMANENTLY), 302 (MOVED_TEMPORARILY) and 307 (TEMPORARY_REDIRECT) are considered successful Default: false - + - Should the XmlValidator throw a PipeRunexception on a validation error. If not, a forward with name 'failure' must be defined. Default: false + Controls whether connections checked to be stale, i.e. appear open, but are not. Default: true - + - If set: key of session variable to store reasons of mis-validation in Default: failureReason + Used when <code>staleChecking</code> is <code>true</code>. Timeout after which an idle connection will be validated before being used. Default: 5000 ms - + - Like <code>reasonSessionKey</code> but stores reasons in xml format and more extensive Default: xmlFailureReason + Maximum Time to Live for connections in the pool. No connection will be re-used past its timeToLive value. Default: 900 s - + - If 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: false + Maximum Time for connection to stay idle in the pool. Connections that are idle longer will periodically be evicted from the pool Default: 10 s - + - Characterset used for reading file, only used when <code>validateFile</code> is <code>true</code> Default: utf-8 + Secure socket protocol (such as 'TLSv1.2') to use when a SSLContext object is generated. Default: TLSv1.2 - + - If set <code>true</code>, the namespace from schemalocation is added to the schema document as targetnamespace Default: false + Allows you to choose which CipherSuites are used when connecting to an endpoint. Works in tandem with <code>protocol</code> 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. - + - Comma separated list of schemaLocations which are excluded from an import or include in the schema document + If set <code>true</code> the input is written to the log file, at DEBUG level Default: false - + - If set <code>true</code>, the comparison for importedSchemaLocationsToIgnore is done on base filename without any path Default: false + userId on the smtphost - + - Comma separated list of namespaces which are excluded from an import or include in the schema document + Set the default value of the subject: header, if not specified in message itself - + - If 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 <code>XSD_VALIDATION_WARNINGS_SUPPRESS_KEY</code>, <code>XSD_VALIDATION_ERROR_SUPPRESS_KEY</code> and <code>XSD_VALIDATION_FATAL_ERROR_SUPPRESS_KEY</code> Default: true + Set the default from: header, if not specified in message itself - + - If set <code>true</code>, the number for caching validators in appConstants is ignored and no caching is done (for this validator only) Default: false + When this name is used, it will be followed by a number which is equal to the node's position Default: attachment - + - If 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> + when messageType is not specified defaultMessageType will be used Default: text/plain - + - Key of session variable to store the name of the root element + when messageBase64 is not specified defaultMessageBase64 will be used Default: false - + - Key of session variable to store the namespace of the root element + NDR return address when mail cannot be delivered. This adds a Return-Path header Default: MAIL FROM attribute - + - Session key for retrieving a schema + Comma separated list of domains to which mails can be send, domains not on the list are filtered out. Empty allows all domains + + + + + 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.