The following section provides a comprehensive reference for all the predefined services that are supplied with iWay Service Manager.
Syntax:
com.ibi.agents.XDAccumEOSAgent
Description:
This service accumulates document pieces and emits a full document at End of Stream (EOS).
Parameters:
Parameter | Description |
---|---|
Final Root * | The name and description of this parameter is derived from viewing XML documents as trees of element objects. A well-formed XML document has exactly one root element (also called document element). When you configure the Accumulate service, the name of the root element for the resulting document must be provided as the parameter. This means that the result of the processing must be enclosed between a root start-tag and a corresponding end-tag with the specified name. The root element of this document tree is serving as a wrapper for the accumulated document parts, combining them into a well-formed XML document. For example: <Final Root Parameter Value> <Accumulated Piece> … </Accumulated Piece> <Accumulated Piece> ... </Accumulated Piece> … </Final Root Parameter Value > |
Example:
The best application of the Accumulate EOS Service would be to merge the documents produced by the splitter for the final output. The architecture of a sample channel would contain an inlet with a File listener and a splitter (for example, XML Splitter preparser). The route would contain a process flow with the Accumulate EOS Service object.
In this example, the following iWay response document is used as the incoming document:
<?xml version="1.0" encoding="UTF-8"?> <iway> <response totalrows="3"> <cncresult> <result format="field"> <resultset rowcount="3"> <colinfo> <col type="4" length="11" offset="0">Document_Link_ID</col> <col type="12" length="50" offset="11">Value</col> </colinfo> <row> <Document_Link_ID type="4">103</Document_Link_ID> <Value type="12">invoice</Value> </row> <row> <Document_Link_ID type="4">103</Document_Link_ID> <Value type="12">Milestone</Value> </row> <row> <Document_Link_ID type="4">103</Document_Link_ID> <Value type="12">Work Order</Value> </row> </resultset> </result> </cncresult> <timestamp>2007-01-10T17:02:48Z</timestamp> <execstatus>0</execstatus> </response> </iway>
In this incoming document, notice that the <row> element loops three times. Therefore, a splitter can be used on this tag to split the incoming document into three individual documents, where each document corresponds to one loop iteration of the <row> element.
The XML Splitter preparser is configured to split the iWay response document into multiple XML documents, each containing one row, as shown in the following image:
Notice that a counter is being added to each row. If, after performing certain operations, there is a need to merge the rows again into a single document.
The Accumulate service can be used to assemble these individual documents into one merged document. In this case, the root element iway would be specified as a value for the Final Root parameter.
The following is the assembled output of the channel:
<?xml version="1.0" encoding="ISO-8859-1" ?> <iway> <eda count="1"> <response totalrows="3"> <cncresult> <result format="field"> <resultset rowcount="3"> <colinfo> <col type="4" length="11" offset="0">Document_Link_ID</col> <col type="12" length="50" offset="11">Value</col> </colinfo> <row> <Document_Link_ID type="4">103</Document_Link_ID> <Value type="12">invoice</Value> </row> </resultset> </result> </cncresult> </response> </eda> <eda count="2"> <response totalrows="3"> <cncresult> <result format="field"> <resultset rowcount="3"> <colinfo> <col type="4" length="11" offset="0">Document_Link_ID</col> <col type="12" length="50" offset="11">Value</col></colinfo> <row> <Document_Link_ID type="4">103</Document_Link_ID> <Value type="12">Milestone</Value> </row> </resultset> </result> </cncresult> </response> </eda>
<eda count="3"> <response totalrows="3"> <cncresult> <result format="field"> <resultset rowcount="3"> <colinfo> <col type="4" length="11" offset="0">Document_Link_ID</col> <col type="12" length="50" offset="11">Value</col> </colinfo> <row> <Document_Link_ID type="4">103</Document_Link_ID> <Value type="12">Work Order</Value> </row> </resultset> </result> </cncresult> </response> </eda> </iway>
Note the differences between the incoming and outgoing document. In the outgoing document, the structure is slightly rearranged and a loop counter is represented by the <eda> element with an incrementing count attribute. This counter is used to mark each iteration of the loop.
Syntax:
com.ibi.agents.XDXALogEvent
Description:
This service is used to record events to the system log during a process flow. It can record security events and arbitrary user event codes. Each message that is logged has a type, code, and optional message.
Parameters:
Parameter | Description |
---|---|
Transactional | Determines whether this event record will be included in the log based on the transaction. If set to true, the event is logged only if the entire process flow is successful. For transactional recording, the channel must be declared to control the local transaction. |
Event | The event class to be included in the log. Select one of the following values from the drop-down list:
You can also type an arbitrary, user-defined value in the Event field. |
Code | A code that further describes the event. Select one of the following values from the drop-down list:
Note: If you specified an arbitrary, user-defined value in the Event field, the code value must be greater than 1000. |
Message | An arbitrary message that you want to associate with this event record. |
Available Response Edges for XDXALogEvent
When you connect the XDXALogEvent object to an End object using the OnCustom build relation in a process flow, the available line edges are provided in the Line Configuration dialog box.
The following table lists and describes the available line edges for the XDXALogEvent object.
Line Edge | Description |
---|---|
OnError | Error |
OnSuccess | Success |
OnFailure | Failure |
Syntax:
com.ibi.agents.XDAddAttachmentAgent
Description:
This service adds a new attachment with the contents determined by the value of a string expression. The Java Character Set parameter specifies how the Java characters in the string are converted to bytes in the body of the attachment. The attachment headers are specified by the special registers of type HDR in the MIME Header Namespace.
There are also four parameters available to specify the most common MIME headers. When used, these parameters override special registers of the same name. Notice the value of the Content-ID header is taken as is, so the value must contain the surrounding angle brackets. For example, a valid value for Content-ID might be <cid>. This service follows the OnSuccess edge upon successful execution, otherwise it follows OnError.
Parameters:
Parameter | Description |
---|---|
Input Data * | An expression that returns the contents of the attachment. |
Java Character Set | The character set used to convert from Java characters to an array of bytes. If no value is specified, the default character set will be used. |
Content-Type * | Value of the Content-Type MIME header. |
Content Description | Value of the Content-Description MIME header. |
Content-Disposition | Value of the Content-Disposition MIME header. |
Content-ID | Value of the Content-ID MIME header. |
MIME Header Namespace | Special register namespace from which additional MIME headers for the attachment are taken. If no value is specified, no MIME headers are added beyond those generated by the header-specific agent parameters. |
Syntax:
com.ibi.agents.XDAddAttachmentFromFileAgent
Description:
This service adds a new attachment with the contents determined by the contents of a file. This service is convenient to provide binary data without first going through a Java character set encoding. The attachment headers are specified by the special registers of type HDR in the MIME Header Namespace.
There are also four parameters to specify the most common MIME headers. When used, these parameters override special registers of the same name. Notice the value of the Content-ID header is taken as is, so the value must contain the surrounding angle brackets. For example, a valid value for Content-ID might be <cid>. This service follows the OnSuccess edge upon successful execution, otherwise it follows OnError.
Parameters:
Parameter | Description |
---|---|
Input Data * | Path to the file that contains the attachment data. |
Content-Type * | Value of the Content-Type MIME header. |
Content Description | Value of the Content-Description MIME header. |
Content-Disposition | Value of the Content-Disposition MIME header. |
Content-ID | Value of the Content-ID MIME header. |
MIME Header Namespace | Special register namespace from which additional MIME headers for the attachment are taken. If no value is specified, no MIME headers are added beyond those generated by the header-specific agent parameters. |
Syntax:
com.ibi.agents.XDAddCorrelEntryAgent
Description:
Uses a correlation management bus to initialize a correlated process. For more information, see the Correlation Facility topic in the iWay Service Manager User's Guide.
Syntax:
com.ibi.agents.XDAltRouteIP
Description:
This service is used to check for a primary host. If that host is not reachable, an alternate host is checked. This is useful for alternate routing.
Parameters:
Parameter | Description |
---|---|
Host * | The primary host to be checked for reachability. |
Alternate * | The secondary host to be checked for reachability. |
Sreg * | Name of the special register to hold the name of the reachable host. |
Timeout * | A timeout period to attempt to reach the host. The default value is 3 seconds. |
The edges returned are listed in the following table.
Edge | Description |
---|---|
success | A route could be obtained. |
fail_connect | Neither host is reachable. |
fail_partner | The host is not known. For example, the host is not identifiable in the DNS. |
Syntax:
com.ibi.agents.XDAQEmitAgent
Description:
This service sends a message to an Oracle AQ queue.
Parameters:
Parameter | Description |
---|---|
host | Network name of the machine where the target system resides. |
password | Password of this user. |
port | Service port that Oracle uses to exchange messages. |
qtable | Database table used to manage queues. |
queue | Queue to receive documents. |
sid | Name of Oracle database service. |
user | User name of access to the target system. |
The result of the Oracle AQ post appears in the <native> section of the <emitstatus> result. For more information, see the iWay Adapter for OracleAQ User’s Guide.
Syntax:
com.ibi.agents.AS1EmitAgent
Description:
Emits AS1 (email) messages. For more information, see the iWay Service Manager Protocol Guide.
Parameters:
Parameter | Description |
---|---|
Send To * | Address to receive this message. |
Outgoing Mail Host * | Destination email host to which outgoing email is sent. |
SMTP User | Logon user ID for SMTP host. |
SMTP Password | Logon password for SMTP host. |
Sender Address * | Email address of sender. |
Copy To | Copy this message to these locations (can be comma delimited list). |
Blind Copy To | Blind copy this message to these locations (can be a comma delimited list). |
Content Type * | Overrides content type of the message.
|
Return Status * |
|
Avoid Preemitter | Checks to see if any preemitter be avoided.
|
SMIME | |
Packaging * | Tells the emitter how the document should be packaged for transmission. For S/MIME packaging it will use configure for S/MIME system properties.
|
Compression * | If checked, compression will be applied.
|
Request Receipt * | Tells the emitter to send a request for receipt, i.e. MDN(Message Disposition Notification).
|
Deliver Receipt To | The address where receipt should be sent to (user@mail_host). |
Public Key Alias | Alias for public key entry; used for encryption. |
Private Key Alias | Alias for private key entry; used for signing and decryption. |
Private Key Password | Password for key access. If omitted, store password is used. |
Digest Algorithm | Digest algorithm.
|
Encrypt Algorithm * | Encryption algorithm.
|
Syntax:
com.ibi.agents.AS2EmitAgent
Description:
General AS2 emitter for use within the service stack. For more information, see the iWay Service Manager Protocol Guide.
Parameters:
Parameter | Description |
---|---|
Destination * | The URL where information is posted. |
Content-Type * | Specifies the content-type of data to be sent.
|
Response timeout value in seconds | Seconds to wait for response before signaling error. |
Content Disposition | File name to put in the Content-Disposition header value. |
User ID | User ID for Basic Authentication challenges. |
Password | Password for Basic Authentication challenges. |
Packaging * | Tells the emitter how the document should be packaged for transmission. For encrypted and/or signed packaging configure S/MIME system properties.
|
Compression | If checked, compression will be applied.
|
AS2-From * | A textual value identifying the sender of data exchange. |
AS2-To * | A textual value identifying the receiver of data exchange. |
Subject | Sets the subject header. |
Request Receipt * | Tells the emitter to send a request for receipt, i.e. MDN(Message Disposition Notification).
|
Asynchronous receipt URL | If an asynchronous receipt should be requested, specify the URL to which the receipt should be sent. Supported values are in the form: mailto:<user>@<host> for asynchronous receipt by email http://<host>/... for asynchronous receipt by HTTP https://<host>/... for asynchronous receipt by HTTPS. |
Receipt Destination | Encryption algorithm.
|
Public Key Entry Alias | The alias for the public key entry used for encryption. |
Private Key Entry Alias | The alias for the private key entry used for signing. |
Private Key Password | Password to access the private key. If left blank password used to access Keystore will be used. |
Digest Algorithm | Digest algorithm used for signing.
|
Encryption Algorithm | Algorithm to be used for encrypting.
|
IP Interface Host | Local IP Interface from which the outgoing IP socket originates. |
IP Interface Port | Local IP Port from which the outgoing IP socket originates. |
Proxy | |
Proxy | If on, emit through proxy sever.
|
Proxy URL | URL of the proxy server. |
Proxy User ID | User ID for Basic Authentication challenges issued by Proxy. |
Proxy Password | Password for Basic Authentication challenges issued by Proxy. |
HTTPS | |
Secure Connection | Use a secure connection. You may need to configure the Keystore under HTTPS section of the system properties if client authentication is required. Note, if keystore is configured in system properties make sure it has the CA certificate or the client certificate of the server you're connecting to. If keystore is not configured in system properties default truststore located under JRE_HOME/lib/security/cacerts will be used.
|
Use 128-bit Encryption | Enforces the use of 128-bit encryption.
|
Security Protocol | Security protocol. SSL - Supports some version of SSL; may support other versions. SSLv2 - Supports SSL version 2 or higher. SSLv3 - Supports SSL version 3; may support other versions. TLS - Supports some version of TLS; may support other versions. TLSv1 - Supports TLS version 1; may support other versions.
|
Agent Specific Parameters | |
Return * | Checks to see if it should return from this agent.
|
Avoid Preemitter | Check to see if any preemitter be avoided.
|
Response Wrapper Tag | The tag name with which to wrap the response if the response is non-XML and must be XML. |
Response Base64 Encoded | Checks to see if the response needs to be Base64 encoded.
|
Syntax:
com.ibi.agents.XDNAS2EmitAgent
Description:
Emits AS2 messages to a client without interrupting a configured business process. For more information, see the iWay Service Manager Protocol Guide.
Parameters:
Parameter | Description |
---|---|
Configuration Parameters | |
Destination | URL that is used to post this information. |
HTTP Client Provider | HTTP client Provider that is used to manage connections for this emitter. |
AS2-From | A textual value identifying the sender of data exchange. |
AS2-To | A textual value identifying the receiver of data exchange. |
Subject | Sets the Subject header. |
Request Receipt | Tells the emitter to send a request for receipt in the form of a Message Disposition Notification (MDN). |
Asynchronous Receipt URL | If an asynchronous receipt should be requested, specify the URL to which the receipt should be sent. Supported values are in the form:
|
Receipt Destination | Directory into which synchronous MDN's are stored. Specific file name is optional. Use * in file name to be replaced by timestamp, # by sequential counter. |
Content-Type | Specifies the content-type of data to be send. Select from drop down or provide your own. |
Message ID | Set this to control the emitted message ID. Usually this is left blank to let the system generate a unique ID meeting the requirements of RFC 822. Use this only to override the default. This is not recommended. |
Content Disposition | File name to put in the Content-Disposition header value. |
User ID | User ID for Basic Authentication challenges. |
Password | Password for Basic Authentication challenges. |
Request Header Namespace | Special register namespace from which HTTP headers for the outgoing request will be taken.
|
Request Main Part Header Namespace | Special register namespace from which MIME headers for the outgoing request will be taken. Provide a prefix to control the request Main BodyPart headers in the presence of attachments. Selecting none means that no special registers will be sent as MIME headers. |
Response Header Namespace | Special register namespace into which HTTP headers for the incoming response will be saved.
|
MDN Header Namespace | Special register namespace into which MIME headers of the multipart/report entity will be saved. This namespace is ignored if the MDN is unsigned since all headers will be in the Response Header Namespace. |
MDN Field Namespace | Special register namespace into which MDN fields will be saved. |
Excluded Headers | A comma delimited list (case insensitive) of headers that should not be sent with the request, even if they are found in the request header namespace. |
Ask for Compressed Response | If set, requests will set the Accept-Encoding header to indicate that the client can accept a compressed response, as described in RFC-2616. If the response has a compressed content encoding, the client will automatically inflate. |
Compress Request | If set to True, the request entities will be compressed using the selected encoding and the content-encoding header will be set accordingly. |
S/MIME | |
Packaging | Tells the emitter how the document should be packaged for transmission. Select from drop down:
|
Compression | Determines when message compression should be applied. Select from drop down:
|
S/MIME Keystore Provider | Provider for the Keystore used to sign and encrypt messages. |
S/MIME Truststore Provider | Provider for the Keystore containing the S/MIME Certificate Authorities. |
S/MIME Certificate Store Providers | Comma-separated list of Keystore, Directory CertStore, or LDAP providers for the certificate stores used to complete signer certificate chains when the signed message contains fewer certificates than needed. |
S/MIME JCE Cryptography Provider | JCE Provider for S/MIME Cryptography services. |
S/MIME Verification JCE Crypto Provider | JCE Provider for S/MIME verification cryptography services. Normally left blank. Defaults to S/MIME JCE Provider. |
S/MIME PKIX JCE Provider | JCE Provider for S/MIME PKIX services. If left blank, the default JCE provider for PKIX will be used. |
Recipient Public Key Alias | The alias for the recipient public key entry used for encryption. |
Signature Key Alias | The alias for the private key entry used for signing. |
Signature Key password | Password to access the signature private key. If left blank, the password used to access the Keystore will be used. |
Digest Algorithm | Algorithm to be used for signing. |
Encryption Algorithm | Algorithm to be used for encrypting. |
Include Certificate Chain | Determines how much of the signer certificate chain is included in the message. Select from the drop down:
|
Enforce KeyUsage Extension | If on, verify certificates used for signing allow the digital Signature KeyUsage extension, and certificates used for encryption allow the key Encipherment KeyUsage extension. |
Enable Certificate Revocation | If set to True, use the CRLs from the CertStores to check whether the signer's certificate has been revoked. |
Unrecognized Certs Location | Directory to store unrecognized certificates found in S/MIME messages. |
IP Properties | |
Persistence | If checked, ask the server to maintain the connection. |
Response Timeout value in seconds | Seconds to wait for response before signaling error. |
Agent Specific parameters | |
Return | Return from this agent. Choose "input" to return input document, "status" for an XML document with transaction parameters and status, or "response" to capture output from the server. |
Preemitter | Determines whether any preemitter should be avoided. If set to True, preemitters will not run. |
Response Wrapper Tag | The tag name with which to wrap the response if the response is non-XML and must be XML |
Response Base64 Encoded | If set to True, Response will be Base64 encoded. |
Syntax:
com.ibi.agents.XDMDNSendNowAgent
Description:
The AS 2 nonblocking send MDN service is a new service that is available in the NAS2 adapter configuration. For more information, see the iWay Service Manager Protocol Guide.
Syntax:
com.ibi.agents.XDAttachOps
Description:
This service performs operations on document attachments.
Parameters:
Parameter | Description |
---|---|
Operation * | Determines which operation should be performed on this document. Select one of the following options from the drop-down list:
|
Attachment Number | For operations on a specific attachment, which one, base 0. If a value is specified, this parameter takes precedence over the Content-ID parameter. |
Content-ID | For operations on a specific attachment, the Content-ID of the attachment. This parameter is Ignored if a value for the Attachment Number parameter is specified. |
Syntax:
com.ibi.agents.XDAttachmentToDocAgent
Description:
This service finds an attachment and makes it the body of the document. The attachment can be selected by index or by Content-ID. If the Attachment Number is specified, it takes precedence over the Content- ID. The attachment index is base 0. If present, the Content- ID must NOT contain the surrounding angle brackets.
For example, the value cid for the Content-ID parameter will match an attachment with a Content-ID header equal to <cid>. The Header Namespace is the special register namespace where MIME headers for the selected attachment will be stored. The attachment will be stored as bytes if the "Keep Document Flat" parameter is enabled. Otherwise, the attachment will be parsed as XML. If the attachment is itself a Multipart, then the document will contain the parse of the Main Body Part and the other parts will appear as document attachments.
The MIME headers of the Main Body Part will be saved as registers in the Main Body Part Header Namespace. This is needed to keep them distinct from the Multipart headers. The "Delete Attachment" parameter determines what to do with the selected attachment when it is not a Multipart: the attachment can be preserved or deleted. This service follows OnSuccess upon successful execution, otherwise it follows fail_notfound if the attachment cannot be found, or it follows fail_operation if there is another error.
Parameters:
Parameter | Description |
---|---|
Attachment Number | The number of the attachment to be retrieved. If specified, it takes precedence over the Content-ID. |
Content-ID | The Content-ID of the attachment to be retrieved. This value is ignored if the attachment number is specified. |
Header Namespace | Special register namespace where MIME headers for the selected attachment will be stored. |
Main Body Part Header Namespace | If the current attachment is itself a Multipart, this is the special register namespace where the MIME headers for the main body part will be stored. |
Keep Document Flat | Determines whether to keep the body of the document as an array of bytes. This parameter is set to false by default. |
Delete Attachment | Determines whether to delete the attachment after it becomes the body of the document. This parameter is set to false by default. |
Syntax:
com.ibi.agents.XDBase64Agent
Description:
This service encodes or decodes a portion of a document using Base64 encoding. Base64 is a specific content transfer encoding scheme that translates binary data into a base 64 representation. Base 64 is set of 64 characters that is part of the subset common to most encodings, and also printable. It is possible to store non-unicode fields within an internal document even though under XML rules such a document cannot be parsed. The Base64 service enables these fields, or the entire incoming document, to be replaced with bytes, and these bytes to be translated into a base 64 representation.
Parameters:
Parameter | Description |
---|---|
Encode or Decode * | Encode to a base 64 representation or decode from a base 64 representation. The default value is encode. |
XPATH expression to Data | The value of the XPATH expression within the input document that will be used as the input data to encode or decode. If no value is specified, the entire input document is used. |
Call at EOS? | In a streaming environment, EOS (End of Stream) is the short message that is sent after the last document, which signifies the EOS. This parameter determines whether this service should be called for the EOS message? The default value is false. |
The edges returned are listed in the following table.
Edge | Description |
---|---|
success | Successful conversion. |
fail_parse | The input could not be converted. |
Example:
In a use case scenario, the Base64 service can be used to handle binary data from a picture or image. For example, you can use it to decode a picture that is temporarily stored in base64 format within the picture tag of an incoming XML document. The data can be placed in a file and later saved with the appropriate extension to be viewed by a photo editor.
The following is an example of configuration settings for a Base64 service object in iWay Designer:
Refer to the Pictures sample that is packaged with iWay Service Manager for the sample input file. For example, the input document that is used by the Samples.Pictures.CreatePictureInsertRequest.1 transformation.
Syntax:
com.ibi.agents.CCharFilter
Description:
Some input documents contain control characters such as tabs or bells. This service replaces or removes such characters.
Parameters:
Parameter | Description |
---|---|
Linefeed * | Determines whether to remove linefeed characters (\r). Select true (default) or false. |
Carriage Return * | Determines whether to remove carriage returns (\n). Select true (default) or false. |
Tab * | Determines whether to remove tab (\t) characters. Select true (default) or false. |
End of File * | Determines whether to remove DOS end of file (0x1a) characters. Select true (default) or false. |
Bell * | Determines whether to remove bell (0x07) characters. Select true (default) or false. |
Control | |
Replace With * | Replace removed characters with this character. Select none (default), space, or period (.) from the drop-down list. |
The edges returned are listed in the following table.
Edge | Description |
---|---|
success | Successful conversion. |
Example:
If you need to replace a new line character in an incoming document with a period (.), this service needs to be configured with default parameter values, except for the Replace With parameter value, which must be set to period (.). The result of passing the incoming document with a new line character inside the <Test> tags is:
<?xml version="1.0" encoding="UTF-8" ?> <Test>.</Test>
Syntax:
com.bi.agents.XDCatchAgent
Description:
Error handling in iWay Service Manager process flows can be accomplished in a number of different ways. The possible methods are:
Explicitly checking for an error, post-service execution, by conditioning the edge with onError or onFailure.
Including an outlet conditioned with _iserror().
Including XDCatchAgent at the beginning of the channel. This channel has two edges on the output side that are used for processing. The first is the onCompletion edge. The second is the onCustom edge, with the onError and onFailure cases selected.
The XDCatchAgent is a new service for iWay Service Manager Version 6.0. The concept of the XDCatchAgent is similar to a try-catch block in other progrmming languages.
In other programming languages, a block of code is enclosed between the braces of a try statement. Following the try block is a catch block of code that is enclosed in braces. The code in the catch block has statements that handle any errors that might occur in the try block.
When the thread of execution starts, each line in the try block of code is executed. If each statement is successful, execution continues at the statement following the closing brace of the catch block (assuming that there is not a finally block). If an error occurs within the try block, the thread of execution jumps to the code inside the catch block.
In an iWay Service Manager flow, you can add an XDCatchAgent in front of the services in which an error might occur. There are two edges off this service:
onCompletion (blue)
onCustom (brown)
The completion edge is the thread of execution in which everything works in a perfect scenario. All the edges after the service connected by the onCompletion edge are then connected to the onSuccess edge.
The onCustom edge has two selected cases. These cases are onError and onFailure. Any errors or failures that occur within the path of the process flow are directed down this edge. The logic in this branch contains any services necessary to handle errors.
Think of the onCompletion path as the try block and the onCustom edge as the catch block.
You can add multiple XDCatchAgents into a process flow. The error branch is taken off the closest XDCatchAgent previous to where the error occurred. In this manner, you can add multiple error conditions for a given process flow if needed.
Example:
In this example, a file is put into a directory after its creation from a previous channel. The sample process flow is responsible for transmitting the file to the customer FTP site.
Since this is an FTP site, it is subject to network and site availability and other possible outside issues. An error handling strategy is required so that none of the documents being processed are lost because of an outside issue.
In process flow, the XDCatchAgent immediately follows the Start block. An onCompletion edge connects the Catch Errors block to the FTP Write block. The FTP Write block is an FTP emitter that is set up to write the file to an FTP site. The service directly following the XDCatchAgent (Catch Errors) must have an onCompletion edge for this to work correctly.
Following the FTP Write block is the End block. The edge connecting these two services is an onSuccess edge. If a different edge were used and an error occurred, the error edge off of Catch Errors may not be executed.
The onCustom edge of Catch Errors has the onError and onFailure cases selected for the properties. This edge leads to a file write service, Write Error, that puts the file into a hold directory for later reprocessing. Following Write Error, there is an End with a Terminate since no further processing is required at this point. In a real world scenario, a requirement might be that an e-mail is sent if the site is down.
When the target FTP site is up and available, the files are written to the FTP site. If the FTP site is down or you cannot connect to it, the FTP write service will generate an error. This error causes the next execution point to be the File Write to save the file for further processing.
Syntax:
com.ibi.agents.XDChanInfoAgent
Description:
This service returns an XML document that contains the current status information for the system. The service is also available for use in process flows. Each channel (represented by a master tag) is included in the XML output, along with statistics on its current state.
Properties:
Property | Description |
---|---|
Info | Root of the information tree. |
Channels | The configured runtime channels. |
Properties of statistics per channel (master) | |
name | Name of the channel. There is one master for each defined channel, regardless of its state. |
state | State of the channel (active for started channel), runnable for deployed (not started) channel, stopping for the channel that is stopping.
|
failed | Number of times the channel execution failed. |
completed | Number of times the channel execution completed. |
active | Indicates whether the channel is active. |
Properties of statistics per execution | |
user | User CPU time statistics. |
cpu | CPU time statistics. |
name | Name of the thread (required). Thread masters always have worker threads to execute messages. |
Properties of statistics per transaction | |
variance | Variance of transaction time. |
ehrlang | Ehrlang coefficient. |
mean | Mean (average) time of transactions. |
internalqs Internal listeners are associated with queues. This section describes the queues themselves. | |
queue | The name of this queue. Usually this is the name of the internal listener that defines the queue (optional). |
size | Number of messages waiting to be processed. |
The edges returned are listed in the following table.
Edge | Description |
---|---|
success | Successful extraction. |
Example:
The following is a sample of an XML document that is returned by the service:
<info> <channels> <master name="internal" state=" active " type="Internal" completed="0" failed="0" active="0" available="1"> <user mean="0.0" variance="0.0" ehrlang="1.0"/> <cpu mean="0.0" variance="0.0" ehrlang="1.0"/> <threads group="internal"> <thread name="W.internal.1"/> </threads> </master> <master name="file1" state=" active " type="FILE" completed="0" failed="0" active="0" available="4"> <user mean="0.0" variance="0.0" ehrlang="1.0"/> <cpu mean="0.0" variance="0.0" ehrlang="1.0"/> <threads group="file1"> <thread name="W.file1.1"/> <thread name="W.file1.2"/> <thread name="W.file1.3"/> <thread name="W.file1.4"/> </threads> </master> </channels> <internalqs> <queue name="internal1" size="0"/> </internalqs> </info>
Syntax:
com.ibi.agents.CheckSchema
Description:
Evaluates the input document against a specified schema. Optionally, this service can route the document to the fail edge or can simply set the appropriate document state that can later be tested with the following iWay Functional Language (iFL) statement:
_hasschemaerr()
Parameters:
Parameter | Description |
---|---|
Schema File | If blank, look for schema in route area; else use this as file path of schema. |
Fail on error * | If fail, schema errors cause fail; mark sets bad document. |
The edges returned are listed in the following table.
Edge | Description |
---|---|
success | Successful. |
fail_parse | The schema could not be parsed or the document fails the schema check. |
fail_missingschema | The schema could not be found. |
fail_format | The input document was inappropriate for the test (for example, the input was not XML). |
Example:
You can examine the process flow that uses the pictures.SqlInsertPicture sample schemas on the route. Specify the schema using iWay Designer, as shown in the following image.
Your process flow will finish at the End1 object (success result) if you run the document that corresponds to the schema.
<?xml version="1.0" encoding="UTF-16" ?> <AdapterParams location="RDBMS/Schemas/PUBLIC/Tables/PICTURES/INSERT"> <ID /> <DESC /> <IMG>//4wIFAATgBHAA0ACgAaAA0ACgANAAoASQBIAEQAUgANAAoADAAMABEADgARABUAGQA NAAoADAASAA0ACgAUABcAFQAZABsAGQAkAB0AIwArACgAGwAZADQAHQAWACIAHAAqACcAIgA eADoAJAAYACcA eAGPACwAywAsAEEALAD7AF8AWQD/AGUA0wDlABsAeADUAA==</IMG> </AdapterParams>
If you run the process flow with the document that fails the schema validation, such as <Test></Test>, the process flow will finish at the End object (fail result).
The content of the message does not change after using this service.
Syntax:
com.ibi.agents.XDLegacyRecordToXMLAgent
Description:
Sometimes a message arrives with data generated in COBOL format. This data is described by a standard COBOL FD (File Descriptor). The agent uses the COBOL FD to parse and convert the incoming record data to XML. The data can consist of the entire message, or it can be a part of the incoming message.
Parameters:
Parameter | Description |
---|---|
input | The input data to be converted. If this parameter is left blank, the entire message is converted. Otherwise this parameter can isolate a part of the incoming message; consider use of iFL or XPATH to extract the information. |
base 64 | Is the data base64? The COBOL record may contain binary information, and so it is being carried in base64 form. |
output node | Where is the converted data to be carried.? Applies only if the incoming COBOL is contained within an existing XML tree. Use XPATH notation to locate the element on which the converted data is to be attached as a child. |
encoding | The input IANA character set. May be needed in cases in which the data is in an alternate character set, such as EBCDIC on a standard ASCII machine. |
full FD | Ste to true if record headings are to appear in the XML |
multi | If the data is longer than the area described by the FD, the conversion restarts at the next position. This allows multiple "data elements" to be converted. If false, remaining data is ignored. |
copybook | The location of the copybook containing the FD. |
Edges:
Edge | Description |
---|---|
success | Conversion has been successful |
full_parse | The data could not be converted. Also can be issued if the configuration iFL is invalid. |
full_operation | Failed for another reason. |
Input:
<root> <legacy> <header> <![CDATA[H1204708013502030706UPRRIES UTILITIES INC319398417403070603270600000177G000002G00000000000000166L0000000000000000001011204708013502]]> </header> <address> <![CDATA[AUNION PACIFIC RR ACCTS PAYABLE / UA# 40411 PO BOX 1605 OMAHA NE 68101]]> </address> </legacy> <converted> <header/> <address/> </converted> </root>
Configure a file listener configured with a pair of chained agents.
<agent name="XDLegacyRecordToXMLAgent_1" class="com.ibi.agents.XDLegacyRecordToXMLAgent" action="chain">XDLegacyRecordToXMLAgent <active>true</active> <parm name="encoding">platform</parm> <parm name="input">_iwxpath(/root/legacy/header)</parm> <parm name="fullfd">false</parm> <parm name="base64">false</parm> <parm name="location">c:\working\soc\copybooks\EDI-HEADER-RECORD.CBL</parm> <parm name="outputnode">/root/converted/header</parm> <parm name="fmulti">false</parm> </agent> <agent name="XDLegacyRecordToXMLAgent_2" class="com.ibi.agents.XDLegacyRecordToXMLAgent">XDLegacyRecordToXMLAgent <active>true</active> <parm name="encoding">leave</parm> <parm name="input">_iwxpath(/root/legacy/address)</parm> <parm name="fullfd">false</parm> <parm name="base64">false</parm> <parm name="location">c:\working\soc\copybooks\EDI-ADDRESS-RECORD.CBL</parm> <parm name="outputnode">/root/converted/address</parm> <parm name="fmulti">false</parm> </agent>
And get this:
<root> <legacy> <header><![CDATA[H1204708013502030706UPRR IES UTILITIES INC319398417403070603270600000177G000002G00000000000000166L0000000000000000001011204708013502]]></header> <address><![CDATA[AUNION PACIFIC RR ACCTS PAYABLE / UA# 40411 PO BOX 1605 OMAHA NE 68101]]></address> </legacy> <converted> <header> <CICSEvent> <EventData> <CommArea> <EDI-HDR-RECORD-TYPE>H</EDI-HDR-RECORD-TYPE> <EDI-HDR-ACCT-NO>1204708013502</EDI-HDR-ACCT-NO> <EDI-HDR-CURR-DATE>30706</EDI-HDR-CURR-DATE> <EDI-HDR-CUST-ID>UPRR</EDI-HDR-CUST-ID> <EDI-HDR-UTILITY-NAME>IES UTILITIES INC</EDI-HDR-UTILITY-NAME> <EDI-HDR-IES-ID>3193984174</EDI-HDR-IES-ID> <EDI-BLG-BILL-DATE>30706</EDI-BLG-BILL-DATE> <EDI-BLG-DUE-DATE>32706</EDI-BLG-DUE-DATE> <EDI-BLG-NET-AMOUNT>17.77</EDI-BLG-NET-AMOUNT> <EDI-BLG-PEN-AMOUNT>.27</EDI-BLG-PEN-AMOUNT> <EDI-BLG-PREV-ACT-BAL>.00</EDI-BLG-PREV-ACT-BAL> <EDI-BLG-ACCT-ADJS>-16.63</EDI-BLG-ACCT-ADJS> <EDI-BLG-REFUND>.00</EDI-BLG-REFUND> <EDI-BLG-PREV-BUD-BAL>.00</EDI-BLG-PREV-BUD-BAL> <EDI-BLG-ACCT-TYPE>1</EDI-BLG-ACCT-TYPE> <EDI-BLG-NUMBER-METERS>1</EDI-BLG-NUMBER-METERS> <EDI-BLG-REF-MSTR-ACCT>1204708013502</EDI-BLG-REF-MSTR-ACCT>
</CommArea> </EventData> </CICSEvent> </header> <address> <CICSEvent> <EventData> <CommArea> <EDI-ADR-RECORD-TYPE>A</EDI-ADR-RECORD-TYPE> <EDI-ADR-CUST-NAME>UNION PACIFIC RR</EDI-ADR-CUST-NAME> <EDI-ADR-MAIL-TO-ADDR-1>ACCTS PAYABLE / UA# 40411</EDI-ADR-MAIL-TO-ADDR-1> <EDI-ADR-MAIL-TO-ADDR-2>PO BOX 1605</EDI-ADR-MAIL-TO-ADDR-2> <EDI-ADR-MAIL-TO-ADDR-3></EDI-ADR-MAIL-TO-ADDR-3> <EDI-ADR-CITY>OMAHA NE</EDI-ADR-CITY> <EDI-ADR-STATE></EDI-ADR-STATE> <EDI-ADR-ZIP-CODE>68101</EDI-ADR-ZIP-CODE> </CommArea> </EventData> </CICSEvent> </address> </converted> </root>
Syntax:
com.ibi.agents.XDConstantAgent
Description:
Replaces the input document with a constant document. Because all parameters are evaluated with the iWay Functional Language (iFL), this service is frequently used to modify the input or load a file from a disk, and so on.
Parameters:
Parameter | Description |
---|---|
Constant Output To Emit * | The value that will be emitted by the Constant service. If the Output Format parameter value is set to xml, this value needs to be valid XML, otherwise the original input document can be emitted based on the Input Criterion parameter value. |
Output Format * | The output format of the result. Select one of the following values from the drop-down list:
|
Output as Error | Determines whether the input should be emitted as an error document. Select true or false (default) from the drop-down list. |
Input Criterion | Emit status criteria based on input type, else copy. Select one of the following values from the drop-down list:
|
Call at EOS? | In a streaming environment, EOS (End of Stream) is the short message that is sent after the last document, which signifies the EOS. This parameter determines whether this service should be called for the EOS message? The default value is false. |
The edges returned are listed in the following table.
Edge | Description |
---|---|
success | Successful. |
fail_parse | An iFL expression could not be evaluated. |
Example:
If you run this service using any input document, the same constant document output is returned. For example, if you are using <a>aaa</a> as a constant, the following is the result:
<?xml version="1.0" encoding="UTF-8" ?> <a>aaa</a>
Syntax:
com.ibi.agents.XDControlAgent
Description:
This service enables or disables a listener. Configuration takes the name of the listener, and the operation to be performed. Supported operations include:
Named listener is started, if necessary. It is enabled for acquiring messages.
Named listener is disabled for acquiring messages. This may not take effect immediately. The listener remains active and no resources are released.
Named listener is started/enabled to acquire messages. It runs through one acquisition cycle (for example, reading all rows in a RDBMS table) and is then stopped. Pulse is not guaranteed to work for all listeners. iWay recommends that this message be used only with extreme caution.
Named listener is stopped. All resources are released.
Using the Controls Channel service, the activity on one listener can control another. For example, the detection of a message in an MQ Series queue can trigger an RDBMS listener to begin working with a relational table.
Parameters:
Parameter | Description |
---|---|
Listener | Specify the name of a listener to control. This value can also be comma-separated list. |
Action | Select one of the following actions from the drop-down list:
|
Call at EOS? | In a streaming environment, EOS (End of Stream) is the short message that is sent after the last document, which signifies the EOS. This parameter determines whether this service should be called for the EOS message? The default value is false. |
Example:
You can use the Controls Channel service to stop a channel that is currently running in iWay Service Manager. In a process flow, configure a Service object using the Controls Channel service (com.ibi.agents.XDControlAgent). Click the Properties tab. For the Listener parameter, specify the name of the channel that you want to stop (for example, default).
Invoke the channel that contains the Controls Channel service process flow in the route with a valid XML document. The stop command for the default channel will be issued. If the default channel is currently running, it will be stopped.
You can verify this by examining the status change for the default channel on the Channel Management pane after successfully passing the XML document through the Controls Channel service channel.
Notice that the default channel is now stopped.
Syntax:
com.ibi.agents.XDCorrelInquiryAgent
Description:
Returns an XML report on the specified correlation ID. For more information, see the Correlation Facility topic in the iWay Service Manager User's Guide.
Parameters:
Parameter | Description |
---|---|
Correlation ID * | Identifier for the correlated process. This is normally a runtime function, such as XPATH() or SREG(). |
Namespace | Namespace for Correlation ID. IDs will normally be unique within a namespace. |
Output Type * | Should agent simply output its input, or should it output an XML correlation report? |
Include History? * | If set to true, correlation history is included in the report. |
Syntax:
com.ibi.agents.XDCorrelInquiryByStateAgent
Description:
Returns a document listing all correlation IDs in the requested state. For more information, see the Correlation Facility topic in the iWay Service Manager User's Guide.
Parameters:
Parameter | Description |
---|---|
Namespace | Namespace for Correlation ID. IDs will normally be unique within a namespace. |
Correlation Status * | Return correlation IDs in this state. |
Inquire By * | Which date should be used in search? |
Updated Since * | Where record has been inserted or updated within this duration. |
Include History? * | If set to true, correlation history is included in the report. |
Syntax:
com.ibi.agents.XDCorrelSetInquiryAgent
Description:
Returns a document describing the status of the requested correlation set ID. For more information, see the Correlation Facility topic in the iWay Service Manager User's Guide.
Parameters:
Parameter | Description |
---|---|
Correlation Set ID | Identifies the set with which this correlation ID is associated. This is typically a batch or envelope identifier, expressed using a runtime function. |
Namespace | Namespace for Correlation ID. IDs will normally be unique within a namespace. |
Syntax:
com.ibi.agents.XDDeflateAgent
Description:
This service is used to compress the document for transmission or storage. The document is flattened to a byte stream, and compression algorithms are applied. The output of this service is a flat document.
Parameters:
Parameter | Description |
---|---|
Method of compression to use * | Determines what format of compression should be used on the output. Select one of the following options from the drop-down list:
|
The edges returned are listed in the following table.
Edge | Description |
---|---|
success | Successful operation. |
fail_operation | The decompression could not be performed. The data is probably not deflated. |
fail_parse | The compressed data could not be accessed. |
Syntax:
com.ibi.agents.XDDocUpdateAgent
Description:
Use this service to run find and replace procedures and modify data based on static or dynamic parameters.
Parameters:
Parameter | Description |
---|---|
Document Output * | The manner in which to process documents. XML can be processed as flat text, but the output document will result as designated. Select one of the following options from the drop-down list:
|
Processing Method * | Modify document data before or after the find/replace operation. Select one of the following options from the drop-down list:
|
Find/Replace | |
Find | Text to search for. Use a comma (,) to repeat searches (for example: search1,search2,search3). |
Replace | Text to replace search text. Multiple searches must have an equal number of replacements. |
Encoding | Specifies the encoding when converting a flat document to XML format. Platform encoding is used by default. The Encoding parameter is required for the Document Update service to function properly. |
Data Sources | Data used to build the document. Use a comma (,) to repeat data sources (for example: SREG(VAR_A),SREG(VAR_B),SREG(VAR_C)). Use DS0 to include the original incoming document. |
Example:
The Document Update service is typically used to search and replace input documents for a certain string value. For example, the parameter values in the following image are configured to replace all the occurrences of "joe" to "jane" in an incoming XML document.
If the Document Update service is used with these sample parameter values and the incoming document consists of <Test>joe joe joe</Test>, the following output document is generated:
<?xml version="1.0" encoding="UTF-8" ?> <Test>jane jane jane</Test>
Syntax:
com.ibi.agents.XDCopyAgent
Description:
This service is used to duplicate an existing document. The service also allows a comment to be emitted and a delay to be configured. Unless a delay or comment is required, it is recommended to use the Move service instead.
Note: The delay parameter can be specified for benchmarking purposes, while the comment parameter is typically used during troubleshooting.
Example:
If running it with <test/> as the incoming message, the following is the result:
<?xml version="1.0" encoding="UTF-8" ?> <test />
Syntax:
com.ibi.agents.XDAttachmentFromDocAgent
Description:
This service adds a new attachment with the contents determined by the input document. The attachment headers are specified with user parameters. The name and value of the user parameter become the name and value of the header. Notice the value of the Content-ID header is taken as is, so the value must contain the surrounding angle brackets.
For example, a valid value for Content-ID might be <cid>. The Attachment Type parameter specifies the attachment Content-Type. If the Attachment Type is omitted, a Content-Type is chosen based on the document data: application/binary if the document contains bytes, text/plain if the document is flat, application/xml otherwise. The optional Attachment Name parameter controls the name sub-parameter of the Content-Type header. The Content-Type name can also be given directly in the Content-Type header value if desired.
The Body Result parameter specifies what to return in the output document: "keep" copies the input document to the output document, "empty" returns an empty document instead. This service follows OnSuccess upon successful execution, otherwise it follows the fail_attach edge.
Parameters:
Parameter | Description |
---|---|
Attachment Name | The name of this attachment, for example, file name. |
Attachment Type | The MIME type. If no value is specified, the attachment type is generated based on the data format. |
Body Result | Specify how to handle the body of this document by selecting one of the following values from the drop-down list:
|
Syntax:
com.ibi.agents.XDEmailEmitAgent
Description:
Emits an email to a specified mail host with various options, including the option to input data as an attachment.
Parameters:
Parameter | Description |
---|---|
Outgoing Mail Host * | Outgoing email host used to route outgoing e-mail (add :port for non-standard port). |
To * | Message recipient as an email address. Use ';' to delimit multiple addresses. |
Subject of Msg | Subject of the message. |
Sender address | Sender of this email. |
Copy To | Carbon copy recipient of this email. Use ';' to delimit multiple addresses. |
Blind Copy To | Blind Carbon copy recipient of this email. Use ';' to delimit multiple addresses. |
Reply-to | Address to replyto for this email. Use ';' to delimit multiple addresses. |
Content | Contains the data for the email body, default (blank) is the inbound document. |
Attachment Tag | Tag name that holds a path to a file to be attached. |
Add As Attachment | If set to true, the inbound document is treated as an attachment. An attachment name is then required. |
Document Attachment Name | Name of the inbound document attachment. |
Attachment Content Type | Content Type of the attachment. |
User ID | Is the valid user ID to log on to the SMTP host server. |
Password | Is a valid password to authenticate the SMTP user ID. |
Content Type | The content type of the data. |
Return | Select one of the following options from the drop-down list:
|
Security Protocol | Select one of the following options from the drop-down list:
|
Example:
To configure the Email Emit service, you must first specify the URL for your email server and the appropriate security level. The following example shows security settings that are configured for the Microsoft Exchange Server:
If your connection parameters are valid, you will receive an email notification that would context the incoming document and a response document from running the service, in the following format:
<?xml version="1.0" encoding="UTF-8" ?> <emitStatus> <protocol>EMAIL</protocol> <parms>password=****, to=your_name@gmail.com, userid=js77777, docattachname=test.xml, usessl=STARTTLS, docattach=false, host=IBIUSMBSA.ibi.com, return=status, from=john.smith@ibi.com, subject=Email Emit Test</parms> <status>0</status> <msg /> <timestamp>2009-05-01T21:27:51.824Z</timestamp> <attempts>1</attempts> <name>your_name@gmail.com</name> </emitStatus>
The following is an example of configuration settings for an Email Emit service object that includes an attachment in iWay Designer:
If your connection parameters are valid, you will receive an email attachment (test.doc) and a response document from running the service, in the following format:
<?xml version="1.0" encoding="UTF-8" ?> <emitStatus> <protocol>EMAIL</protocol> <parms>password=****, to=your_name@gmail.com, userid=js77777, docattachname=test.doc, usessl=STARTTLS, docattach=true, host=IBIUSMBSA.ibi.com, return=status, from=john.smith@ibi.com, subject=Email Emit Attch, docattachctype=text/plain, body=see attached</parms> <status>0</status> <msg /> <timestamp>2009-05-05T22:43:59.032Z</timestamp> <attempts>1</attempts> <name> your_name@gmail.com</name> </emitStatus>
Syntax:
com.ibi.agents.XDEntagAgent
Description:
Adds an element tag around a flat document, and optionally base64 encodes the document. If the input document is not flat, this service is ignored.
Parameters:
Parameter | Description |
---|---|
Tag Name * | The name of the tag which wraps the data. |
Base64 Encoding * | Determines whether the data requires Base64 encoding, so that valid XML could be formed. Select true or false from the drop-down list. |
The edges returned are listed in the following table.
Edge | Description |
---|---|
success | Successful operation. |
Example:
If you run this service with picture as a value for the the Tag Name parameter, Base64 Encoding set to true, and incoming data as <test/>, the following result is returned:
<?xml version="1.0" encoding="UTF-8" ?> <picture>PFRlc3QvPg==</picture>
If Base64 Encoding is set to false, the result would be:
<picture><test/></picture>
Syntax:
com.ibi.agents.XDETLAgent
Description:
Executes EDA ETL procedures and returns ICM codes to specified edges. You can invoke this service from a process flow. For more information, see the iWay Designer User's Guide.
Parameters:
Parameter | Description |
---|---|
SQL DML * | SQL statement. |
Data Source URL * | URL to reach the data source. |
Document Return Type * | Document to return. Select one of the following options from the drop-down list:
|
User ID | Default user ID for the connection. |
Password | Default password for the connection. |
Search Code | Search code to search for (for example, XXX,YYY,ZZZ). |
Statistic Handler | The RPC to call to fetch ETL statistics. Called only when return document is set to Statistics. |
Handler Parameters | Parameters passed to the Statistic Handler. |
Stats Wait | The amount of time in seconds to wait after an unsuccessful attempt to retrieve statistics. |
Stats Retry | The number of attempts to try retrieving ETL statistics. |
Syntax:
com.ibi.agents.XDFailAgent
Description:
The failure business service always returns an XDException. If the retry option is selected for the Type of failure parameter, the exception calls for a retry of the input, if possible. This service is useful when debugging rollback logic in a customer business service.
Parameters:
Parameter | Description |
---|---|
Type of failure | The type of failure to be thrown. Select one of the following options from the drop-down list:
|
Message | Message to be issued to the user. |
Call at EOS? | In a streaming environment, EOS (End of Stream) is the short message that is sent after the last document, which signifies the EOS. This parameter determines whether this service should be called for the EOS message? The default value is false. |
Example:
This service can be used in situations where a failure must be reported or simulated (for example, if a certain fatal condition is reported). If you run this service in a process flow using <test/> as the incoming message and the retry option is selected for the Type of failure parameter, the following document is returned:
<?xml version="1.0" encoding="UTF-8" ?> <eda> <error code="6" timestamp="2009-06-05T19:56:59Z" source="com.ibi.agents.XDFailAgent" stage="AGENT">XD[RETRY] cause: 0 subcause: 0 message: Retry requested from XDFailAgent</error> </eda>
Syntax:
com.ibi.agents.XDFileEmitAgent
Description:
This service writes the contents of the current document or other specified information to the file system. The source specification can be blank or can specify any iWay expression, including XPATH(). If the document is XML and xpath() is specified, each value meeting the XPATH() criteria is written as a file; the assigned names are allocated sequentially based on the entered pattern.
Parameters:
Parameter | Description |
---|---|
Source of Data | Source of data to write. If omitted, document will be used, else specify a data source location via XPATH() function or any other function. |
Target Directory * | The target output directory. |
File Pattern * | The file name pattern. In the pattern, an asterisk (*) character is replaced by the current timestamp. So T*.out might become T2002-06- 25_12:02:24:43.out. A # character is considered a unique number. The number of # characters controls the length. |
Avoid Preemitter | If a preemitter exists on this route for output, this allows it to be bypassed for this emit operation. Perform this action to enable the output file to include non-processed (raw) information. Select one of the following options from the drop-down list:
|
Return | Select one of the following options from the drop-down list:
|
Base64 Decode | If set, the value is assumed to be in base64 notation. Only applicable is a specific write value is specified. Select one of the following options from the drop-down list:
|
Respect Transactionality * | If set, the emit respects the transactionality of the channel. If not set, the file is always written. Select one of the following options from the drop-down list:
|
Call at EOS? | In a streaming environment, EOS (End of Stream) is the short message that is sent after the last document, which signifies the EOS. This parameter determines whether this service should be called for the EOS message? The default value is false. |
Example:
The following is an example of configuration settings for a File Emit service object in iWay Designer:
If your connection parameters are valid, after running a process flow with the File Emit service, you will find the incoming document from your process flow copied to the target directory (for example, c:/out), with its name formatted according to the value that was specified for the File Pattern parameter (for example, testsvc[date/time mask].xml). The process flow’s return document would be an update from running the service, which indicates that the File Emit service worked successfully. For example:
<?xml version="1.0" encoding="UTF-8" ?> <emitstatus status="0"> <protocol>FILE</protocol> <parms> <parm name="directory">c:/out</parm> <parm name="return">status</parm> <parm name="wanteos">false</parm> <parm name="pattern">testsrvc*.xml</parm> <parm name="b64">false</parm> <parm name="trans">false</parm> <parm name="nopreemit">true</parm> </parms> <timestamp>2009-05-04T22:16:39.566Z</timestamp> <status>0</status> <count>1</count> <name>c:\out\testsrvc2009-05-04T22_16_39.551Z.xml</name> </emitstatus>
Syntax:
com.ibi.agents.XDFileReadAgent
Description:
The local file input accepts a request to read a file from the local file system and outputs this request as an XDTextDocument. The transform business service and standard output can accept and operate upon this output. The input business service can operate on flat or XML data, and can emit data in either form.
Parameters:
Parameter | Description |
---|---|
File Name Tag * | Tag of input document whose value is the file name to read. The input document must be: <filename>pathToFile</filename> This assumes that the tagname is set to filename. If the input format is XML or an entag parameter is used, the output is in XML form. Otherwise, the output is a flat document. Note: The File Read Service assumes that the input data format is flat by default, or if the entag option is set to any value even if the XML input data format is selected. |
Base Path | Optional directory to be used if the incoming name is not absolute. |
Input Data Format | Format of the input data. Select one of the following options from the drop-down list:
|
Enclose Tag | The name of the tag in which to enclose that data that is read. If omitted, no entagging is performed. If used, the output is XML. |
Encoding | Encoding to be performed on the input. Can be asis or base64. If omitted, no encoding is performed. |
Delete After Read | Determines whether the file is deleted after it is read. Select one of the following options from the drop-down list:
|
Example:
To configure a File Read service, you must specify the tag name that contains the path to the file you want to read. The following is an example of configuration settings for a File Read service object in iWay Designer. This example assumes that the path to the file is contained within the <Test> tag of the incoming document:
Run this service with a document such as the following:
<Test>c:/out/input.xml</Test>
The contents of the input.xml file will be received as the output.
Syntax:
com.ibi.agents.XDFTPEmitAgent
Description:
Emits using the FTP protocol to a specified host using various common FTP commands.
Parameters:
Parameter | Description |
---|---|
Host Name * | DNS name (or IP address) of the FTP server to which you want to connect. |
Remote Port | Port number used by the FTP server. Port 21 is used by default if no value is specified. |
User Name * | Valid user ID for the FTP server. |
Password * | Valid password for the FTP server. |
Account Name | Valid account name for the FTP server. |
Remote Site Folder | Folder or directory on the FTP server that you want to use as a starting location when you connect. Login directory is used by default if no value is specified. |
File Pattern * | Output file pattern. An asterisk character (*) can be used for a timestamp. For example, *.XML,*.txt, and so on. Note: *.* is unsupported. |
Append | Append on PUT if the destination file exists. Select one of the following options from the drop-down list:
|
Retry Interval | Retry interval in seconds. The following format can also be used: xxhxxmxxs Leave blank or enter 0 to indicate no retry interval. |
Connection Retry | Attempted failed connects to the FTP server. |
Quote Command | This specified command is sent as typed, BEFORE any data transfer. |
Transfer Mode * | Form of FTP transmission. Select one of the following options from the drop-down list:
|
Put File Protection | Is the PUT protected by a rename of a temp file name? Select one of the following options from the drop-down list:
|
Return | Select one of the following options from the drop-down list:
|
Use Passive Command | Uses PASV command if true, otherwise the PORT command is used. Select one of the following options from the drop-down list:
|
Example:
To configure an FTP Emit service, you must specify the host name for your FTP server and the appropriate credentials. The following is an example of configuration settings for an FTP Emit service object in iWay Designer that is used to FTP an incoming document onto a host called unixbox:
If your connection parameters are valid and if you log onto your host, you will receive an incoming document, with its name formatted according to the value that was specified for the File Pattern parameter. In addition, the following status update is generated after running the FTP Emit service:
<?xml version="1.0" encoding="UTF-8" ?> <emitstatus status="0"> <protocol>FTP</protocol> <parms> <parm name="append">false</parm> <parm name="password">***</parm> <parm name="userid">unixuser</parm> <parm name="passive">false</parm> <parm name="fileprot">false</parm> <parm name="host">unixbox</parm> <parm name="mode">ascii</parm> <parm name="return">status</parm> <parm name="pattern">from_windows_*.xml</parm> </parms> <timestamp>2009-05-05T23:20:08.602Z</timestamp> <status>0</status> <msg>success</msg> <name>from_windows_2009-05-05T23_20_08.524Z.xml</name> <attempts>1</attempts> </emitstatus>
Syntax:
com.ibi.agents.XDFTPReadAgent
Description:
Reads one file through FTP. This service provides many options.
Parameters:
Parameter | Description |
---|---|
File Name Tag * | Name of the tag from the input document in which to find the file name. |
Enclose Tag | The name of the tag in which to enclose data read. If omitted, no entagging. If used, output is XML. |
Base Path | Optional directory to be used if the incoming name is not absolute. |
Input Data Format | Format of the input data. Select one of the following options from the drop-down list:
|
Transfer Type | For non-XML input, this parameter sets the transfer type. Select one of the following options from the drop-down list:
|
Host Name * | DNS name (or IP address) of the FTP server to which you want to connect. |
Remote Port | Port number used by the FTP server. Port 21 is used by default if no value is specified. |
User Name * | Valid user ID for the FTP server. |
Password * | Valid password for the FTP server. |
Encoding | Character set encoding to be performed on the input. Select one of the following options from the drop-down list:
|
Delete After Read | Determines whether to delete the file after the read. Select one of the following options from the drop-down list:
|
Example:
To configure an FTP Read service, you must specify the host name for your FTP server and the appropriate credentials. The following is an example of configuration settings for a FTP Read service object in iWay Designer that is used to FTP an incoming document onto a host called unixbox:
If your connection parameters are valid and your incoming document contains the <Test> tag that references the name of the document to read from a host called unixbox, for example:
<Test>hello_world.xml</Test>
You will receive the contents of that document as an outgoing message from the service. For example:
<?xml version="1.0" encoding="UTF-8" ?> <hello>hi world</hello>
Syntax:
com.ibi.agents.XDHTTPEmitAgent
Description:
This service is a general HTTP emitter for use within the service stack. The document is posted using HTTP to a designated server.
Parameters:
Parameter | Description |
---|---|
Target URL * | Specify a URL to post this information. |
Action Method | Select one of the following methods from the drop-down list:
|
Response content type | Overrides content type of response. Select one of the following options from the drop-down list:
|
User ID | User ID for Basic Authentication challenges. |
Password | Password for Basic Authentication challenges. |
Response timeout value in seconds | Seconds to wait for response before signaling error. |
IP Interface Host | Local IP Interface from which the outgoing IP socket originates. |
IP Interface Port | Local IP Port from which the outgoing IP socket originates. |
Relay Inbound Content Type | If set to true, relay headers as received (content type). Select one of the following options from the drop-down list:
|
Proxy | |
Proxy | If set to true, emit through proxy server. Select one of the following options from the drop-down list:
|
Proxy URL | URL of the proxy server. |
Proxy User ID | User ID for proxy challenges. |
Proxy Password | Password to access the proxy server. |
HTTPS | |
Secure Connection | Use a secure connection. You may need to configure the Keystore under HTTPS section of the system properties if client authentication is required. Note, if keystore is configured in system properties make sure it has the CA certificate or the client certificate of the server you're connecting to. If keystore is not configured in system properties default truststore located under JRE_HOME/lib/security/cacerts will be used. Select one of the following options from the drop-down list:
|
Use 128-bit Encryption | Enforces the use of 128-bit encryption. Select one of the following options from the drop-down list:
|
Security Protocol | Select one of the following security protocols from the drop-down list:
|
Agent Specific Parameters | |
Return * | Return from this agent. Select one of the following options from the drop-down list:
|
Use Preemitters | If set to true, preemitters will be used for this emit. Select one of the following options from the drop-down list:
|
Response Wrapper Tag | The tag name with which to wrap the response if the response is non-XML and must be XML |
Response Base64 Encoded | Determines whether the response should be Base64 encoded. Select one of the following options from the drop-down list:
|
In addition to the URL parameter, any other parameters are treated as headers, with the values specified in the parameter value. For example:
<agent>emitHttp <parm name='url' required='y'/> <parm name='header1' required='y'/ prompt='first header'> <parm name='header2' required='y'/ prompt='second header'> </agent>
Header parameters with no value are ignored. Header parameters with values of x=y format are changed such that the x is the name and the y is the value. Thus a user can fill in the blanks.
The result of the post appears in the <native> section of the <emitstatus> result. If the returnresponse parameter is STATUS, the status message is always generated. If it is RESPONSE (the default) the actual information returned from the POST is emitted, except in the cases of an error in which case the status information is emitted. The POST is considered successful if the POST can reach its destination and a 200 status is received. A successful return response is considered to be XML if the first character is a <. Otherwise, a flat document is created.
Example:
The following is an example of configuration settings for an HTTP Emit service object in iWay Designer:
A simple way to test your HTTP Read service is to first configure a channel that uses an HTTP listener as the inlet and a File emitter as the outlet to examine the messages that are received by the listener. Your HTTP listener configuration settings would look similar to the following example, where an HTTP port and a document root are specified.
After you deploy and start the channel with the HTTP listener and File emitter, you can test run your process flow, which contains an HTTP Emit service object. You must supply an incoming document with the appropriate content (for example, HTML):
<html> <head> <title>my iWay http</title> </head> <body> Testing HTTP Emit Service! </body> </html>
If the service runs successfully, you will receive this HTML document in the output folder that is specified by your File emitter. The HTTP listener channel picks up the document that is emitted by the HTTP Emit service.
Syntax:
com.ibi.agents.XDNHttpEmitAgent
Description:
Emits HTTP messages to a client without interrupting a configured business process. For more information, see the iWay Service Manager Protocol Guide.
Parameters:
Parameter | Description |
---|---|
Configuration Parameters | |
Target URL | URL that is used to post this information. |
HTTP Client Provider | HTTP client Provider that is used to manage connections for this emitter. |
Action Method | Select one of the following supported methods from the drop-down list:
|
Request Content Type | Content type for the HTTP request to be sent by this emitter. Select a value from the drop-down list or provide your own. |
User ID | User ID for Basic Authentication challenges. |
Password | Password for Basic Authentication challenges. |
Request Header Namespace | Special register namespace from which HTTP headers for the outgoing request will be taken. Choose "Default Namespace" to send HDR type registers with no nonamespace prefix, or supply a namespace prefix here. "None" means that no special registers will be sent as HTTP headers.
|
Request Main Part Header Namespace | Special register namespace from which MIME headers for the outgoing request will be taken. Provide a prefix to control the request Main BodyPart headers in the presence of attachments. Selecting none means that no special registers will be sent as MIME headers. |
Response Header Namespace | Special register namespace into which HTTP headers from the incoming response will be saved. Choose "Default Namespace" to create special registers with no namespace prefix, or supply a namespace prefix here."None" means that no special registers will be created.
|
Excluded Headers | A comma delimited list (case insensitive) of headers that should not be sent with the request, even if they are found in the request header namespace. |
Ask for Compressed Response | If set to True, the request will set the accept-encoding to indicate that that the client can accept a compressed response. If the response has a compressed content encoding, the client will automatically inflate the response. |
Compress Request | If set to True, the request entities will be compressed using the selected encoding and the content-encoding header will be set accordingly. |
Replace Connection? | If set to False, the connection is not returned to the connection pool immediately. The connection's identifier will be stored in the httpclient-key special register and the connection can be handled by the HTTP Client Manager agent. |
Try Expect/Continue Handshake? | If checked, client will send the HTTP Expect: 100-continue header and await HTTP 100 response before sending request body. |
IP Properties | |
Persistence | If checked, ask the server to maintain the connection. |
Response Timeout value in seconds | The value in seconds to wait for a response before generating an error. |
Agent Specific Parameters | |
Return | Return from this agent. Choose "input" to return input document, "status" for an XML document with transaction parameters and status, or "response" to capture output from the server. |
Preemitter | If set to True, preemitters will not run. |
Response Wrapper Tag | The tag name with which to wrap the response if the response is non-XML and must be XML. |
Response Base64 Encoded | If set to True, the response will use Base64 encoding. |
Syntax:
com.ibi.agents.XDHTTPReadAgent
Description:
This service reads an HTTP source via HTTP GET and returns a result. The GET facility input accepts a URL in the incoming document and issues an HTTP GET through that URL. The transform business service and standard output can accept and operate upon this output. It is presumed that some output is returned, otherwise an error is generated.
In a use case scenario, the HTTP Read service can be part of an architecture for a Web search engine, similar to the Google search engine. The service could be used to traverse or spider the contents of Web pages for indexing purposes.
Parameters:
Parameter | Description |
---|---|
URL Tag Name * | Tag name is the input document containing the URL. |
The input document might be the following assuming that the tagname parameter is set to inurl:
<?xml version="1.0"?> <inurl>http://localhost:1234/xmlone.xml</inurl>
In addition to the URL parameter, any other parameters denoted by <parm> are treated as GET parameters, with the values specified in the parameter value. For example:
<agent>emitHttp <parm name='url' required='y'/> <parm name='header1' required='y'/ prompt='first header'> <parm name='header2' required='y'/ prompt='second header'> </agent>
GET parameters with no value are ignored. GET parameters with values of x=y format are changed such that the x is the name and the y is the value. Thus a deploy user can fill in the blanks. The returned information is passed on as the output document. If it begins with a <, it is considered XML; otherwise, a flat document is returned.
Example:
The following is an example of configuration settings for an HTTP Read service object in iWay Designer:
A simple way to test your HTTP Read service is to first configure a channel that uses an HTTP listener. Your HTTP listener configuration settings would look similar to the following example, where an HTTP port and a document root are specified.
After you deploy and start the channel with the HTTP listener, you can test run your process flow, which contains an HTTP Read service object. You must ensure that the file name you supply within the <Test> tag of your incoming document is valid and is also contained within the document root folder specified for your HTTP listener configuration settings. A sample HTTP read incoming document can have the following format:
<Test>http://localhost:1234/index1.htm</Test>
If the service ran successfully, you will receieve the contents of index1.hml as the output from the service. For example:
Syntax:
com.ibi.agents.XDInflateAgent
Description:
This service is used decompress the data that is compressed by the Deflate service (com.ibi.agents.XDDeflateAgent).
Parameters:
Parameter | Description |
---|---|
Inflated Format * | Determines the format of the inflated output. Select one of the following options from the drop-down list:
If xml is selected, the output will be parsed. |
The edges returned are listed in the following table.
Edge | Description |
---|---|
success | Successful operation. |
fail_operation | The decompression could not be performed. The data is probably not deflated. |
fail_parse | The compressed data could not be accessed. |
Syntax:
com.ibi.agents.XDInsertSAMLAssertionAgent
Description:
This service is used to generate a WSSE SecurityTokenReference containing an embedded SAML assertion.
Parameters:
Parameter | Description |
---|---|
XML Namespace Provider | Provider for the mapping between XML namespace prefix and namespace URI. If left blank, Elements in the security token will use the default namespace. |
Create Parent Element | Determines whether the parent element is created if it is missing. Select true or false (default) from the drop-down list. |
Security Token Parent Element | Path to the element where the security token will be inserted. The default value is: /soapenv:Envelope/soapenv:Header/wsse:Security If the Create Parent Element parameter is set to true, the XPATH expression must be of the form /comp1/comp2/... where each path component has the following form: ns:elem[@ns1:attrib="attribValue"] The ns: and ns1: namespace prefixes are optional, but if they are present they must be declared in the XML Namespace Provider parameter. The selector in square brackets is optional. If no element with a matching attribute is found, then both the element and the attribute will be created. |
WSSE Security Token Reference Id | The value of the SecurityTokenReference ID Attribute. Subsequent agents can retrieve this value in the saml_token_id special register. |
SAML Assertion Id | The value of the SAML Assertion ID Attribute. Subsequent agents can retrieve this value in the saml_assertion_id special register. |
SAML Issue Instant | The value of the SAML IssueInstant attribute. Subsequent agents can retrieve this value in the saml_issue_instant special register. |
SAML Issuer | The value of the SAML Issuer attribute. |
SAML Major Version | The value of the SAML MajorVersion attribute. The default value is 1. |
SAML Minor Version | The value of the SAML MinorVersion attribute. The default value is 1. |
SAML Authentication Instant | The value of the SAML AuthenticationInstant attribute |
SAML Authentication Method | The value of the SAML AuthenticationMethod attribute. |
SAML Name Identifier Format | The value of the SAML NameIdentifier Format attribute. |
SAML Name Identifier | The value of the SAML NameIdentifier element. |
SAML Subject Confirmation Method | The value of the SAML ConfirmationMethod element. |
The location where to insert the Security Token Reference is given by a (restricted) XPATH expression pointing to the parent element. The XPATH expression can contain namespace prefixes if the optional XML Namespace Map Provider is specified. If the parent does not exist, it is created. The optional WSSE Security Token Reference Id is used to generate a wsu:Id attribute on the wsse:SecurityTokenReference element. The Id is saved in the saml_token_id special register. This can be used to refer to the security token in an XML Digital Signature Reference using the URL expression #SREG(saml_token_id).
The required SAML Assertion Id is used to generate a saml:AssertionId attribute on the saml:Assertion element. The Assertion Id is saved in the saml_assertion_id special register for later reference. The required SAML Issue Instant is used to generate a saml:IssueInstant attribute on the saml:Assertion element. The issue instance is saved in the saml_issue_instant special register. As per the SAML schema, the following parameters are all required: SAML Issuer, SAML Major Version, SAML Minor Version, SAML Authentication Instant, SAML Authentication Method, SAML Name Identifier Format, SAML Name Identifier, and SAML Subject Confirmation Method. The Major and Minor Versions both default to 1.
The following sample shows an SAML Assertion created by the service:
Available Response Edges for XDInsertSAMLAssertionAgent
When you connect the XDInsertSAMLAssertionAgent object to an End object using the OnCustom build relation in a process flow, the available line edges are provided in the Line Configuration dialog box.
The following table lists and describes the available line edges for the XDInsertSAMLAssertionAgent object.
Line Edge | Description |
---|---|
OnError | Error |
OnSuccess | Success |
OnFailure | Failure |
Syntax:
com.ibi.agents.XDInsertWSSETimestampAgent
Description:
This service is used to generate a WSSE timestamp.
Parameters:
Parameter | Description |
---|---|
XML Namespace Provider | Provider for the mapping between XML namespace prefix and namespace URI. If left blank, the XPATH expression for the Timestamp Parent Element cannot contain namespaces. |
Create Parent Element | Determines whether the parent element is created if it is missing. Select true or false (default) from the drop-down list. |
Timestamp Parent Element | Path to the element where the timestamp will be inserted. The default value is: /soapenv:Envelope/soapenv:Header/wsse:Security If the Create Parent Element parameter is set to true, the XPATH expression must be of the form /comp1/comp2/... where each path component has the following form: ns:elem[@ns1:attrib="attribValue"] The ns: and ns1: namespace prefixes are optional, but if present, they must also be declared in the XML Namespace Provider parameter. The selector in square brackets is optional. If no element with a matching attribute is found, then both the element and the attribute will be created. |
WSSE Timestamp Id | The value of the Timestamp ID attribute. Subsequent agents can retrieve this value in the wsse_timestamp_id special register. |
Expiration Period | The time period after which the timestamp will expire. If left blank, the timestamp will never expire. Use the following format: [xxh][xxm]xx[s] For example, 1m30s is 90 seconds. |
The Created time is always the current time. The Expires Time is the current time plus the given Expiration Period. If the Expiration Period is left blank, the Expires element will not appear and the timestamp will never expire. The location where to insert the timestamp is given by a (restricted) XPATH expression pointing to the parent Element. The XPATH expression can contain namespace prefixes if the optional XML Namespace Map Provider is specified. If the parent does not exist, it is created. The optional Timestamp Id will generate a wsu:Id attribute if specified. The Id is saved in the wsse_timestamp_id special register. This can beused to refer to the Timestamp in an XML Digital Signature Reference using the URL expression #SREG(wsse_timestamp_id).
The following example shows a Timestamp inserted at /soapenv:Envelope/soapenv:Header/wsse:Security with expiration period 1m30s (for example, 90 seconds) and Timestamp Id mytimestampid.
Available Response Edges for XDInsertWSSETimestampAgent
When you connect the XDInsertWSSETimestampAgent object to an End object using the OnCustom build relation in a process flow, the available line edges are provided in the Line Configuration dialog box.
The following table lists and describes the available line edges for the XDInsertWSSETimestampAgent object.
Line Edge | Description |
---|---|
OnError | Error |
OnSuccess | Success |
OnFailure | Failure |
Syntax:
com.ibi.agents.XDInsertWSSETokenAgent
Description:
This service is used to generate a WSSE Binary Security Token containing an X509 certificate.
Parameters:
Parameter | Description |
---|---|
KeyStore Provider | Provider for the keystore containing the key. |
Key Alias | Alias for the key to insert into the security token. |
XML Namespace Provider | Provider for the mapping between XML namespace prefix and namespace URI. If left blank, Elements in the security token will use the default namespace. |
Create Parent Element | Determines whether the parent element is created if it is missing. Select true or false (default) from the drop-down list. |
Security Token Parent Element | Path to the element where the security token will be inserted. The default value is: /soapenv:Envelope/soapenv:Header/wsse:Security If the Create Parent Element parameter is set to true, the XPATH expression must be of the form /comp1/comp2/... where each path component has the following form: ns:elem[@ns1:attrib="attribValue"] The ns: and ns1: namespace prefixes are optional, but if they are present they must be declared in the XML Namespace Provider parameter. The selector in square brackets is optional. If no element with a matching attribute is found, then both the element and the attribute will be created. |
WSSE Security Token Id | The value of the BinarySecurityToken ID attribute. If left blank, the default value is x509_signer. Subsequent agents can retrieve this value in the wsse_token_id special register. |
The WSSE Binary Security Token can later be refered to by an XML Digital Signature KeyInfo element and signed like any other XML content. The Keystore Provider and Key Alias specify which certificate will appear in the Security Token. There is no password to enter because we are only retrieving the public certificate corresponding to this private key. The location where to insert the Binary Security Token is given by a (restricted) XPATH expression pointing to the parent element.
The XPATH expression can contain namespace prefixes if the optional XML Namespace Map Provider is specified. If the parent does not exist, it is created. The optional WSSE Security Token Id is used to generate a wsu:Id attribute on the wsse:BinarySecurityToken element. The Id is saved in the wsse_token_id special register. This can be used to refer to the security token in an XML Digital Signature Reference using the URL expression #SREG(wsse_token_id). It can also be used to generate a KeyInfo/SecurityTokenReference with the Token Id expression SREG(wsse_token_id).
The following example shows a Binary Security Token.
Available Response Edges for XDInsertWSSETokenAgent
When you connect the XDInsertWSSETokenAgent object to an End object using the OnCustom build relation in a process flow, the available line edges are provided in the Line Configuration dialog box.
The following table lists and describes the available line edges for the XDInsertWSSETokenAgent object.
Line Edge | Description |
---|---|
OnError | Error |
OnSuccess | Success |
OnFailure | Failure |
Syntax:
com.ibi.agents.XDInternalEmitAgent
Description:
This service sends the document to a designated recipient. The document always goes to the recipient that is specified in the parameters.
Parameters:
Parameter | Description |
---|---|
Queue Name * | Name of the internal queue to post messages. |
Avoid Preemitter | Determines whether any preemitter should be avoided. Select one of the following options from the drop-down list:
|
Return * | Select one of the following options from the drop-down list:
|
Call at EOS? | In a streaming environment, EOS (End of Stream) is the short message that is sent after the last document, which signifies the EOS. This parameter determines whether this service should be called for the EOS message? The default value is false. |
Example:
In a sample use case, an Internal Emit service is used to forward incoming documents to an internal queue. The architecture for this use case consists of two channels. The first channel feeds incoming documents to the internal queue and the second channel is used to process the internal queue. The first channel also contains a route that is associated with a process flow where an Internal Emit service is used. For example:
Every time an incoming document is processed by the first channel, the document is added to the internal queue, for example, queue1. The second channel contains an inlet that is associated with an Internal listener to access queue1. For example:
The second channel also contains a Move route, which routes the documents that reside on queue1 to the appropriate outlet. This outlet can consist of a File or Email Emitter. For example:
As documents are picked up by the first channel, they are processed by the first channel and then by the second channel. When the processing is finished, the documents will appear at the final location, which is specified by the second channel's emitter. For example:
Syntax:
com.ibi.agents.XDIsReachable
Description:
This service is used test whether a specific IP target is reachable. If the target can be reached, the service returns success. This service is useful for supporting alternate routes, such that a message can be directed to a a primary or a backup host.
Parameters:
Parameter | Description |
---|---|
Host * | Host to be checked for reachability. |
Timeout * | A timeout period to attempt to reach the host. The default value is 3 seconds. |
The edges returned are listed in the following table.
Edge | Description |
---|---|
OnSuccess | The host is reachable. |
fail_unreachable | The host is not reachable. |
fail_partner | The host is not known. For example, the host is not identifiable in the DNS. |
Syntax:
com.ibi.agents.XDAdapterAgent
Description:
This service is used to call an iWay adapter.
Note: This service should be used as adapters are defined. To use this service, an adapter must first be configured using iWay Explorer.
Parameters:
Parameter | Description |
---|---|
iBSP URL * | Select an available iBSP URL from the drop-down list or type a URL using the following format: http://host:port where:
The iBSP URL allows you to access targets defined in the iBSP repository. |
Adapter * | The name of the configured adapter you are working with, for example, RDBMS. |
Target * | The name of the user-defined target that is associated with the configured adapter, for example, Oracle11. |
Class | The name of the Java class that implements the adapter associated with the service. This field is populated by iWay Service Manager when you create the Adapter service and should not be modified. |
Descriptor | Key used by iWay Service Manager to locate the adapter target parameters to associate with the service. This field is populated by iWay Service Manager when you create the Adapter service and should not be modified. |
Keys | Key used by iWay Service Manager to locate the adapter persistence keys associated with the service. This field is populated by iWay Service Manager when you create the Adapter service and should not be modified. |
Create Error Document | Select one of the following options from the drop-down list:
|
Persist Connection | Select one of the following options from the drop-down list:
|
The edges returned are listed in the following table.
Edge | Description |
---|---|
success | Successful operation of the adapter. |
fail_operation | The adapter failed and did not report the direct cause. |
fail_security | The adapter has returned a security violation. |
fail_partner | The adapter reports that it cannot reach the needed external system or that system has returned an error. |
cancelled | The operation has been cancelled due to a timeout or other cause. |
Example:
It is recommended to use an iWay Adapter as a Service object for connection with adapters rather than this service. For more information, see the Configuring the Adapter in iWay Designer chapter in the iWay adapter documentation that corresponds to the specific adapter you are trying to add or define (for example, iWay XML Adapter for RDBMS User's Guide).
Syntax:
com.ibi.agents.XDJdbcAgent
Description:
This service uses industry-standard JDBC to generate the standard <eda> <response> result. Because JDBC standards limit the available database operations that can be performed, this service is correspondingly limited. For example, this service cannot process the <focus> tag of the input document. However, this service can avail itself of any configured JDBC driver. This includes the iWay SAP, IMS, and transaction server drivers as well as drivers from third-party providers.
Note: This service is deprecated. As an alternative it is recommended to use the SQL service.
Parameters:
Parameter | Description |
---|---|
Output Format * | The format of the result. |
Transaction Isolation Level | Transaction isolation level to be set if possible. |
User ID | The user ID if it is not specified in the document. |
Password | The password if it is not specified in the document. |
JNDI name * | JNDI name for the requested data source. |
Example:
The JDBC Data Server properties must be configured before you can use the JDBC service. If you already configured a server, for example, localDB, you can run this service using the following input document:
<eda> <request> <connection> <dsn>local_DB</dsn> <user>iway</user> <password>iway</password> <sql> <query>select * from BALLS</query> </sql> </connection> </request> </eda>
If your connection parameters are valid and the JDBC driver is configured, you will receive a response document from your local database in the following format (for the row output type):
<?xml version="1.0" encoding="UTF-8" ?> <eda> <response> <timestamp>2009-04-29T22:53:44Z</timestamp> <cncresult> <result format="std"> <resultset> <colinfo> <col type="1" length="100" offset="0" nullable="1">name</col> <col type="1" length="10" offset="100" nullable="1">color</col> <col type="4" length="11" offset="110" nullable="1">amt</col> <col type="3" length="20" scale="0" offset="121" nullable="1">diameter</col> <col type="1" length="10" offset="141" nullable="1">type</col> </colinfo> <row>Old tennis ball grey 5 3 tennis</row> <row>New swim ball blue 2 5 pool</row> <row>Swift golf ball white 10 1 golf</row> <row>Leather soccer ball checkered 1 20 soccer</row> </resultset> </result> </cncresult> <execstatus>0</execstatus> </response> </eda>
Syntax:
com.ibi.agents.XDJMSQEmitAgent
Description:
This service emits an input document to a JMS (Java Messaging Server) queue. It returns a status document or the original input document as the output document. For more information on JMS queue, see the Queuing Adapters chapter in the iWay Service Manager Protocol Guide.
Parameters:
Parameter | Description |
---|---|
Connection factory * | The object store name. |
Receiver queue * | The name of the receiver queue. |
Messaging type | The message type. |
JNDI URL * | The JNDI URL. |
JNDI factory * | The JNDI factory class name. |
Correlation ID | The correlation ID. |
Correlation ID tag | The correlation ID tag. |
User ID | A valid user ID for challenges. |
Password | A valid password for challenges. |
Acknowledgement | Acknowledgement mode, or transactional. |
Preemitter | Should any preemitter be avoided? |
Return document | Select one of the following options from the drop-down list:
|
Output message type | Select an output message type. |
JMS Reply-to | Queue or Topic (used for JNDI lookup). |
Syntax:
com.ibi.agents.LocalMasterAgent
Description:
Passes the document to a separate, named workflow and awaits the result. This service accepts the name of a configured LOCAL protocol which can be configured in any manner desired. The routes are pooled for efficiency. Unlike using an internal emitter to route a document to the internal protocol, this call is synchronous. Any errors reported by the named workflow are reflected in the calling flow, and any timeout configured for the flow includes time in the called flow. LocalMasterAgent differs from simply calling an external process flow in the normal manner in that a complete workflow is available including preparsers, reviewers, and so on. It is strongly recommended that this agent not be used unless no other means are available to accomplish the application purposes.
Parameters:
Parameter | Description |
---|---|
Name | Name of the defined local master (channel) to be called. |
Call at EOS? | In a streaming environment, EOS (End of Stream) is the short message that is sent after the last document, which signifies the EOS. This parameter determines whether this service should be called for the EOS message? The default value is false. |
Syntax:
com.ibi.agents.XDMailAttachAgent
Description:
This service is used to process an email attachment.
Parameters:
Parameter | Description |
---|---|
Attachment Tag * | Tag used to identify an attachment (attachment is the default). |
Encode | If set to true, everything is base64 encoded, if false only non-txt is encoded. |
Target | Target of attachments. |
Output Directory | The target output directory. |
Output File Name | The output file name, which can contain an asterisk character (*) and is expanded to a timestamp, if an empty attachment name is used. Note: If you want to preserve the original name of the attachment, do not specify a value for this parameter. |
Delete Mail Object | If no other component needs the mail object, it should be deleted. |
Example:
In a sample scenario, a channel can be configured that uses an Email listener as an inlet, and a Mail Attach service as a route. The Mail Attach service processes the attachment from the incoming email and places the resulting document within the attachment tag. The following is an example of configuration settings for a Mail Attach service object in iWay Designer:
When an email containing simple HTML <Test><hello>hi</hello></Test> with an attachment file (test.xml) is sent to the address specified for the email listener, the channel runs and the Mail Attach service processes the email producing the following output document:
<?xml version="1.0" encoding="ISO-8859-1" ?> <Test><hello>hi</hello><attachment mime="text/xml" file="c:\out\mailattch2009-05-13T20_05_57.986Z" name="test.xml"/></Test>
Notice that the attachment element was added to the original email, along with the location of the emitted attachment file, which you can locate as specified.
Syntax:
com.ibi.agents.XDMarkAttachAgent
Description:
This service makes the body of a document into an attachment.
Parameters:
Parameter | Description |
---|---|
Attachment Name | Name for this attachment, usually the file name. |
Attachment Type | Mime type; if omitted one is generated based on the data format. |
Body Result * | Determines how to handle the body of the document. |
Syntax:
com.ibi.agents.XDMoveAgent
Description:
This service moves the input to the output without duplicating the information. This is the fastest means of copying from input to output.
In a use case scenario, the Move service can be used as a route in a channel. This channel may need to parse an EDI document with a preparser or emit the document to a message queue.
Syntax:
com.ibi.agents.XDMQEmitAgent
Description:
This service emits an input document to a Message Queuing (MQ) queue. It returns a status document or the original input document as the output document. For more information on MQ, see the Queuing Adapters chapter in the iWay Service Manager Protocol Guide.
Parameters:
Parameter | Description |
---|---|
correlid | The correlation ID. |
queuemanager | The queue manager name. |
queuename | The queue name. |
The message ID appears in the <name> element of the <emitstatus> result.
Syntax:
com.ibi.agents.XDMSMQEmitAgent
Description:
This service emits an input document to a Microsoft Message Queuing (MSMQ) queue. It returns a status document or the original input document as the output document. For more information on MSMQ, see the Queuing Adapters chapter in the iWay Service Manager Protocol Guide.
Parameters:
Parameter | Description |
---|---|
host | The email host. |
subject | The subject of the message. |
to | The intended recipient as an email address. |
Syntax:
com.ibi.agents.XDMTOMAgent
Description:
The Message Transmission Optimization Mechanism (MTOM) service can be used to format a document for MTOM transmission or to reconstruct a document received in MTOM format.
Parameters:
Parameter | Description |
---|---|
Operation | Select the specific operation to perform from the drop-down list. Available options include:
|
Delete Attachments | If the Reconstruct the original message option is selected for the Operation parameter, the Delete Attachments parameter specifies whether to delete the attachments that have replaced xop:Include elements. |
Element Path | If the Create an MTOM package option is selected for the Operation parameter, you must specify an XPATH expression for the Element Path parameter that returns the set of base64binary nodes to extract. If the Add an Include option is selected for the Operation parameter, you must specify an XPATH expression that returns the element where the xop:Include element will be added. |
XML Namespace Provider | A provider for the mapping between XML namespace prefix and namespace URI in the Element Path. |
Attachment Content-Type | If the Create an MTOM package option is selected for the Operation parameter, this is the Content-Type set on a new attachment when the xmlmime:contentType attribute is absent on the extracted element. |
Attachment Content-ID | If the Add an Include option is selected for the Operation parameter, this value is the Content-ID of the existing attachment being referred to. If the Create an MTOM package option is selected for the Operation parameter, the Content-ID of the new attachments will be the prefix specified here followed by a numeric suffix. |
Syntax:
com.ibi.agents.XDNodeSetExtractAgent
Description:
This service creates a new document based on a node or set of nodes in the original input document.
Parameters:
Parameter | Description |
---|---|
XPATH Expression * | The XPATH expression which represents the node set. |
Root name | Optional root for multiple children. |
Example:
The best application of the Node Set Extract service would be to extract the sub-part of an incoming XML document. If you provide the XPATH location for the node where the extraction begins, you will receive an output of the XML sub-tree from the original document with the specified node as a root.
In the following example, the XPATH expression is specified as Test/attachment/. The incoming document consists of the following:
<Test><hello>hi</hello><attachment><a>555</a></attachment></Test>
The Node Set Extract service will return a result of the edge as success, along with the following output document:
<?xml version="1.0" encoding="UTF-8" ?> <attachment> <a>555</a> </attachment>
Syntax:
com.ibi.agents.XDPFlowAgent
Description:
This service passes the input document through a process defined in the System area.
Parameters:
Parameter | Description |
---|---|
Name of the PFLOW * | The name of the process flow to run. This value could be a string value or a SREG reference for dynamic process flow invocation. In order for the service to be successful, the referenced process flow must be deployed as a service during run time. |
Called at EOS? | In a streaming environment, EOS (End of Stream) is the short message that is sent after the last document, which signifies the EOS. This parameter determines whether this service should be called for the EOS message? The default value is false. |
Example:
In a use case scenario, the PFlow service can be used to invoke a specified process flow. It can be used in situations where a specific process flow must be invoked dynamically, or when its parameters are being determined in the workflow. For example, you can call a process flow name stored as an SREG value.
The following is an example of configuration settings for a PFlow service object in iWay Designer:
Using an SREG allows you to add or change the name or list of names for the process flow to be called without modifying the original "caller" process flow.
The single or multiple process flows that are being called need to be deployed as services in order to be found by the PFlow service. Services can be deployed using the iWay Service Manager Administration Console from the Services category in the Deployments section, as shown in the following image.
Syntax:
com.ibi.agents.XDPFlowTestAgent
Note: This agent is intended for internal use only.
Syntax:
com.ibi.agents.XDToXML
Description:
This service parses a flat document into an XML document. If the input is already in XML format, this service performs no action. This service is useful if a flat (non-XML) input document has been received and must be converted into XML format for additional processing.
Two possible returns are supported:
Example:
In a use case scenario, a response document is received from a Web server using an HTTP emitter, which sends a request to the server. When the response is received from the Web server, it is unreadable by a File reader until it is converted to XML format. As a result, using the Parse to XML Service is required to convert the message, as shown in the following image.
On success, the output of this process flow is an XML message. If the response can not be parsed as a valid XML file, an error is returned.
Syntax:
com.ibi.agents.XDPFFileOpsAgent
Description:
This service performs operations on the specified file(s) including copy, move, rename, prepend, append, delete, size, and exist.
Parameters:
Parameter | Description |
---|---|
Operation * | Command to execute when service goes active. |
File (from) * | Originating file to be operated on. Relative or absolute file paths are supported explicitly or through a SREG or XPATH expression evaluated using the incoming document. |
File (to) | Destination file to be operated on. Wild cards accepted. Required except for delete, size, exists. |
Size | Special register designated to hold size. Required for size. |
Out Document * | Document returned by operation (bad input defaults to result) |
Action on Failure * | Determines whether input document or status document is returned on failure. |
Retry | If non-zero, will retry the operation n times at one-second intervals. |
Example:
If running it using the move operation on a specified file, the result is:
<?xml version="1.0" encoding="UTF-8" ?> <manager> <status>OK</status> <msg>Success</msg> </manager>
Syntax:
com.ibi.agents.XDPFFileReadAgent
Description:
This service embeds a specified binary, XML or text file in the input document.
Parameters:
Parameter | Description |
---|---|
Name of File * | File to be read. Relative or absolute file paths are supported explicitly or through a SREG or XPATH expression evaluated using the incoming document. |
Delete after read * | Determines whether to delete the file read on a successful read. |
Format * | Format of the input data. |
Tag | Name of the XML tag to wrap the data read in. Required if data is flat. |
Character Set Encoding | Character set encoding of the document to be read in. Default system encoding will be used if left blank. |
Embed * | Determines whether to embed the data from the read operation into the input document. |
Base64 Encode * | Base64 encode the read in document when embedding. |
Parent Tag | Where in the input document the input data should be embedded. |
Retry | If non-zero, will retry the operation n times at one-second intervals. |
Syntax:
com.ibi.agents.XDPFFTPOpsAgent
Description:
This service performs operations on the specified file(s) including copy, move, rename, prepend, append, delete, size, and exist.
Parameters:
Parameter | Description |
---|---|
Operation * | Command to execute when service goes active. |
File (from) * | Originating file to be operated on. Relative or absolute file paths are supported explicitly or through a SREG or XPATH expression evaluated using the incoming document. |
File (to) | Destination file to be operated on. Wild cards accepted. Required except for delete, size, exists. |
Host name * | DNS name (or IP address) of the FTP server that you want to connect to. |
Password * | Valid password for the FTP server. |
User Name * | Valid user ID on the FTP server. |
Port * | Port to connect to on the FTP site. |
Size | Special register designated to hold size. Required for size. |
Out Document * | Document returned by operation (bad input defaults to result). |
Action on Failure * | Determines whether input document or status document returned on failure. |
Retry | If non-zero, will retry the operation n times at one-second intervals. |
Syntax:
com.ibi.agents.XDPFFTPReadAgent
Description:
This service embeds a specified binary, XML or text file in the input document.
Parameters:
Parameter | Description |
---|---|
Name of File * | File to be read. Relative or absolute file paths are supported explicitly or through a SREG or XPATH expression evaluated using the incoming document. |
Delete after read * | Determines whether to delete the file read on a successful read. |
Host name * | DNS name (or IP address) of the FTP server that you want to connect to. |
Password * | Valid password for the FTP server. |
User Name * | Valid user ID on the FTP server. |
Port * | Port to connect to on the FTP site. |
Format | Format of the input data. |
Tag | Name of the XML tag to wrap the data read in. Required if data is flat. |
Character Set Encoding * | Character set encoding of the document to be read in. Default system encoding will be used if left blank. |
Embed * | Determines whether to embed the data from the read operation into the input document. |
Parent Tag | Determines where in the input document the input data should be embedded. |
Action on Failure * | Determines whether input document or status document returned on failure. |
Retry | If non-zero, will retry the operation n times at one-second intervals. |
Syntax:
com.ibi.agents.XDPreemitAgent
Description:
Runs a specified preemitter. This service is usually used before an emit service.
Parameters:
Parameter | Description |
---|---|
Preemitter | Name of the defined preemitter to run. If blank, standard selection is used. |
return* | Output is the preemit result. If the preemitter fails, 'status' - status document will be the out document. 'input' - in document will become the out document. |
Call at EOS? * | In a streaming environment, EOS (End of Stream) is the short message that is sent after the last document, which signifies the EOS. This parameter determines whether this service should be called for the EOS message? The default value is false. |
Example:
Running this service with XDCharRepl, the following result is provided:
<?xml version="1.0" encoding="UTF-8" ?> <emitstatus status="1"> <protocol>preemit</protocol> <parms> <parm name="wanteos">false</parm> <parm name="return">status</parm> <parm name="name">com.ibi.preemit.XDCharRepl</parm> </parms> <timestamp>2009-01-28T00:26:14.113Z</timestamp> <status>1</status> </emitstatus>
Syntax:
com.ibi.agents.XDPrintEmitAgent
Description:
This service is a general print emitter for use within the service stack.
Parameters:
Parameter | Description |
---|---|
Printer URL * | The URL for the printer. |
Server Name * | Name of the printer at the URL. |
Copies | Number of copies. |
Retries | Number of retries if print server down. |
Print format | Print format. |
Secure | If enabled, secure connection will be used. |
Secure 128-bit | If enabled, use of 128-bit encryption will be enforced. |
Proxy Server | If enabled, emit through proxy server. |
Proxy URL | The URL of the proxy server. |
User ID | User ID for challenges. |
Password | Password for challenges. |
Preemitter | Should any preemitter be avoided? |
Protocol business services are standard business services that can emit a document to a designated target or can read from a source. In the standard situation for output, a <replyto> should be used, however for some circumstances, a protocol business service can be employed. In all cases, if an emitter can be used it should be used in preference to a protocol business service. Each protocol business service takes initialization parameters appropriate to the protocol type.
Protocol Agents Result Document
<emitstatus> <protocol>name</protocol> <status>status code</status> <parms>stringOfParms</parms> <native>nativeSystemErrorCode</native> <text>error descriptive text</text> <name>nameOfCreatedFile</name> <retries>numberOfRetries</retries> <timestamp>timeOfCompletion</timestamp> </emitstatus>
The output edges returned are listed in the following table.
Edge | Description |
---|---|
success | Standard success edge. |
fail_parse | Could not parse the XPATH expression or other entered function. |
fail_operation | File write failure occurred. |
notfound | No information meeting the source criteria was located. |
Syntax:
com.ibi.agents.XDQAAgent
Description:
This service emits a flattened copy of the input document to a file named in the init() parameters. The business service outputs the document (XML or flat) either in QA mode or always, depending on the setting of a parameter. If the QA mode is not enabled (set in the Diagnostic System Properties Console Configuration page) and the always parameter is not set, this business service acts as a move business service. This business service is designed to work as a chained business service for debugging purposes. The document and all special registers are included in the output.
Parameters:
Parameter | Description |
---|---|
Where * | File pattern to receive trace file. |
When | Determines when to emit the information. |
Name | Identifier name to mark emitted trace document. |
Emit input | Location (file pattern} to which to emit actual input document. If omitted or empty, the incoming document is not emitted. |
Base64 Decode | If set, the value is assumed to be in base64 notation. Only applicable is a specific write value is specified. |
Syntax:
com.ibi.agents.XDRDBAgent
Parameters:
Parameter | Description |
---|---|
Format * | Format of result. |
Property Name | Name of properties group (if none, DSN is used). |
Transaction level | Transaction isolation level to be set if possible. |
URL | URL to reach the data source. |
JDBC driver | JDBC driver to use. |
User ID | User ID if not in the document. |
Password | Default password if not in the document. |
JNDI name | JNDI name for the registered data source. |
Datasource type | Type of data source. |
Syntax:
com.ibi.agents.XDRouteAgent
Description:
This service routes based on specified routing rules.
Parameters:
Parameter | Description |
---|---|
Routing Rules * | Name of rules section to be used as basis of routing. |
Special Register Name * | Name of special register to set from selected destination. |
Output Type | Type of output from this service. |
Syntax:
com.ibi.agents.XDRuleRouterAgent
Parameters:
Parameter | Description |
---|---|
Error Location * | The error output directory. |
Error Mask * | The error file name with possible wild cards. |
Valid Location | The valid output directory. |
Valid Mask | The valid file name with possible wild cards. |
Ack Location | The acknowledgement output directory. |
Ack Mask | The acknowledgement file name with possible wild cards. |
Original Location | The original data output directory. |
Original Mask | The original data file name with possible wild cards. |
Status Location * | The status document output directory. |
Status Mask * | The status document file name with possible wild cards. |
Syntax:
com.ibi.agents.XDRunCmdAgent
Description:
This service runs a system command.
Example:
The following is an example of configuration settings for the Run OS Shell Command service in the iWay Service Manager Administration Console:
In this example, the Run OS Shell Command service runs a command prompt command to invoke a third-party FTP program for a file transfer that is required. Similarly, you can also use this service to run the supported commands in your shell environment as needed by referring to third-party tools.
Syntax:
com.ibi.agents.XDPrincipalAgent
Description:
The relationship between a user and their credentials creates a principal. The arrival of a message with standardized user information, such as HTTP, automatically authenticates the user and creates the "base" principal for a channel. For protocols that either do not have standardized security information, or when it is desired to "change" the current principal for [some of] the remainder of message processing (for example, by using information in the message) the XDPrincipal service can authenticate the user and/or push/pop the principal. Changing the principal for some portion of the message processing is called impersonation.
The iWay Functional Language (iFL) functions _hasrole() and _getprin() operate on the current principal.
Parameters:
Parameter | Resolved | Description |
---|---|---|
Action* | Initialization | Action to be performed by agent. Select one of the following options from the drop-down list:
|
Realm* | Initialization | Authentication realm provider to use. The authentication realm must be configured at the time the service is used. |
User | Per Message | The user to be authenticated. |
Credential | Per Message | The credential used to authenticate the user. |
The edges returned are listed in the following table.
Edge | Description |
---|---|
success | The user is authenticated. |
fail_security | The user is not authenticated. |
Syntax:
com.ibi.agents.XDSnipAgent
Description:
This service sends a subtree of the input document to the output document. This business service is especially useful in pulling body structures from documents that surround the body with a header structure.
Parameters:
Parameter | Description |
---|---|
Target * | The name of the node of the desired subtree. |
Type * | Type of target node. |
Example:
The following XML is used to run the service:
<?xml version="1.0" encoding="UTF-8" ?> <iway> <response totalrows="4"> <cncresult> <result format="std"> <resultset rowcount="4"> <colinfo> <col type="1" length="100" offset="0" nullable="1">name</col> <col type="1" length="10" offset="100" nullable="1">color</col> <col type="4" length="11" offset="110" nullable="1">amt</col> <col type="3" length="20" scale="0" offset="121" nullable="1">diameter</col> <col type="1" length="10" offset="141" nullable="1">type</col> </colinfo> <row>Old tennis ball grey 5 3 tennis</row> <row>New swim ball blue 2 5 pool</row> <row>Swift golf ball white 10 1 golf</row> <row>Leather soccer ball checkered 1 20 soccer</row> </resultset> </result> </cncresult> <timestamp>2009-03-26T18:48:55Z</timestamp> <execstatus>0</execstatus> </response> </iway>
As a result, the following subtree of the correct content is returned:
<?xml version="1.0" encoding="UTF-8" ?> <resultset rowcount="4"> <colinfo> <col type="1" length="100" offset="0" nullable="1">name</col> <col type="1" length="10" offset="100" nullable="1">color</col> <col type="4" length="11" offset="110" nullable="1">amt</col> <col type="3" length="20" scale="0" offset="121" nullable="1">diameter</col> <col type="1" length="10" offset="141" nullable="1">type</col> </colinfo> <row>Old tennis ball grey 5 3 tennis</row> <row>New swim ball blue 2 5 pool</row> <row>Swift golf ball white 10 1 golf</row> <row>Leather soccer ball checkered 1 20 soccer</row> </resultset>
Syntax:
com.ibi.agents.XDSonicEmitAgent
Description:
This service emits data using the Sonic version of JMS to a queue or topic. For more information, see the iWay Service Manager Protocol Guide.
Parameters:
Parameter | Description |
---|---|
Queue Name * | The name of the receiver queue. |
Broker URL * | URL (address) used by the listener to connect to the Sonic broker. The format of the URL is Protocol://host:port. If Service Manager is listening on a Sonic broker configured to listen on TCP, the format of the URL is tcp://host:port. The default TCP port on which Sonic listens is 2506. This value is configured in the Sonic broker.ini file. When Service Manager listens to Sonic, the URL is in the form of http://host:port where the HTTP port is defined in the Sonic broker.ini file. The Sonic listener supports fail over if unable to reach a particular broker. You must provide a comma-separated list of broker URLs. The client attempts to connect to brokers in the list, for example, tcp://host:port, tcp://host:port. |
User ID | User ID for challenges. |
Password | Password for challenges. |
Messaging type | The messaging type. Select one of the following options from the drop-down list:
|
Output Message Type | The output message type. Select one of the following options from the drop-down list:
|
Ackmode | The acknowledgement mode, or transactional. Select one of the following options from the drop-down list:
|
Send Persistently | Support for persistent and non-persistent messages. In the event of a network or system failure, the persistent option prevents messages from being lost. In the event of a broker or Service Manager failure, non-persistent messages are volatile. Persistent messages are saved to disk. |
Load balance | Determines whether to load balance among brokers. Select true or false. |
Duplicates Detect | Determines whether to detect for duplicates. Select true or false. |
Priority | Priority of the message, which can also be specified using XPATH(). The default is 3. |
Correlation ID | Correlation ID of the message, which can also be specified using XPATH(). |
Preserve undelivered | Determines whether to preserve undelivered documents. Select true or false. |
Notify undelivered | Determines whether to notify if documents are undelivered. Select true or false. |
Preemitter | Should any preemitter be avoided? |
Fault Tolerant | Determines whether the listener is connecting to the Sonic Broker as a fault tolerant client or not. The default value is false, that is, the listener is not connecting as a fault tolerant client. This feature is supported only when the Sonic Broker is installed with a Sonic Fault Tolerance license code. |
Sequential | When multiple brokers listed, this parameter determines whether they are used sequentially or randomly. Select true or false. |
Reconnect Fault Timeout | Determines how long to wait (in seconds) before trying to reconnect. |
Initial Connect Timeout | Determines how long to wait (in seconds) after failing initially, before trying to reconnect. |
Return document | Select one of the following options from the drop-down list:
|
Syntax:
com.ibi.agents.XDSPRouter
Description:
This service stacks a stored procedure to handle an EDA doc SP tag.
Parameters:
Parameter | Description |
---|---|
prefix | The path to prepend to an agent (service) name. |
Syntax:
com.ibi.agents.XDSplitAgent
Description:
This service splits an incoming document to multiple documents according to XSLT transform.
Parameters:
Parameter | Description |
---|---|
Directory * | Path pattern for the split files. |
Transform * | XSLT file name and location. |
Syntax:
com.ibi.agents.XDSplitToMQAgent
Description:
This service splits an incoming document into multiple documents according to the document format and outputs resulting documents into the specified MQ/Series queue.
Parameters:
Parameter | Description |
---|---|
Manager * | Name of the local MQ Series queue manager to be used. |
Queue name * | Queue on which request documents are received. |
Correlation ID | The correlation ID linking messages. |
Correlation ID tag | The XML tag at which the correlation ID is located. |
MQ host | The MQ host, which is needed if you are using MQ client. |
MQ port | The MQ port, which is needed if you are using MQ client. The default is 1414. |
Channel | The MQ server channel, which is needed if you are using MQ client. |
Delivery | Request confirmation of delivery. |
Arrival | Request confirmation of arrival. |
Report Queue | The name of the report queue; required if COA or COD is requested or msgtype is response. |
Priority | Priority of message, which can be specified using XPATH(). The default is 3. |
Format | Name of MQ message format. The default is STRING. |
Type | Name of MQ message type. |
Message persistence | Message persistence. Default is as defined for the queue. |
Expiry | An expiry time expressed in tenths of a second. The default is unlimited. |
MQ Character set | MQ Character set, default as per queue manager. |
Attributes | Include user attributes in the emitted document. |
Preemitter | Should any preemitter be avoided? |
SSL CipherSpec | The SSL Cipher Specification being used. |
Return document | Select one of the following options from the drop-down list:
|
Join Local Transaction? | If the listener is a transaction manager, should this emit be rolled back if the transaction fails? |
Call at EOS? | In a streaming environment, EOS (End of Stream) is the short message that is sent after the last document, which signifies the EOS. This parameter determines whether this service should be called for the EOS message? The default value is false. |
Syntax:
com.ibi.agents.XDSQLAgent
Description:
This service enables you to execute an arbitrary SQL statement, specified as a service configuration parameter. The service returns an EDA response document, as defined elsewhere. This service differs from the more complete RDBMS services and adapters in that it does not interrogate an iWay response document to obtain its SQL. Instead, it accepts the SQL as a configuration parameter and modifies the statement based on the current document or environment. The SQL expression can be modified during execution by iWay standard parameter expressions.
Using the SQL service instead of the RDMBS Adapter is preferred in cases where dynamically built queries are processed or when simple (non-looping) SQL statements need to be processed quickly. This service also provides conditional transactionality support, multi-part transactional support, advanced SQL language capabilities, and error-handing features.
Parameters:
Parameter | Description |
---|---|
SQL DML * | The SQL statement, which can also evaluate an iFL expression to build an SQL statement dynamically. For example, inserting SREG(value) into the text of your query. |
Evaluate SQL | If set to true, an attempt is made to treat the SQL as an expression. This may not be appropriate to all SQL. For example, quotes in evaluated strings must be escaped by doubling. |
Output Format * | The format of the result. |
Transaction Isolation Level | Transaction isolation level to be set if possible. |
Pool Connections | If set to true, connections are pooled. |
Validate Pooled Connection? | If set to true, an attempt to execute the specified SQL statement is made before reusing a pooled connection. |
Validation Statement | SQL statement to execute when testing a pooled connection before use. The default value is recommended for most DBMS. |
Attempt Read Only | For select set JDBC 'read only' flag. Some drivers cannot handle this optimization and can give security failures. |
Connection Properties | Properties to apply to a connection. |
Need Commit | Should a commit be performed on completion? If yes, pools will be built accordingly. |
Timeout | Number of seconds this service will wait for an operation to complete. A value of 0 means no timeout check. |
Max Rows | Maximum rows if query DML (0 is all). |
Make Siblings | If set to true, sibling documents are created for each Max Rows group. |
Max Siblings | Maximum siblings of maximum rows (if siblings selected). |
Emit No Empty | If set to true, empty documents are not emitted. |
Issuance Strategy | Issuance strategy: via SQL construction or via SQL bind. |
Reply Node Name | If entered, response is put at this fully qualified named node. |
Base 64 if Needed | If set to true, all fields are checked for base64. |
Call at EOS? | In streaming a last call is made AFTER the last document. Does this Service want to be called? |
Connection | |
JDBC Driver * | The JDBC driver to use. |
Data Source URL * | The URL to reach the data source. |
User ID | Default user ID for the connection. |
Password | Default password for the connection. |
Example:
To run the SQL service, you must first configure a database connection. The service will run with any given input document. The following is an example of configuration settings for an SQL service object in iWay Designer, where a connection to an MSSQL Server database is configured:
If your connection parameters are valid and the appropriate database driver is configured (see the iWay Service Manager User’s Guide for more information), you will receive a response document from your local database in the following format (for the row output type):
<?xml version="1.0" encoding="UTF-8" ?> <iway> <response totalrows="4"> <cncresult> <result format="std"> <resultset rowcount="4"> <colinfo> <col type="1" length="100" offset="0" nullable="1">name</col> <col type="1" length="10" offset="100" nullable="1">color</col> <col type="4" length="11" offset="110" nullable="1">amt</col> <col type="3" length="20" scale="0" offset="121" nullable="1">diameter</col> <col type="1" length="10" offset="141" nullable="1">type</col> </colinfo> <row>Old tennis ball grey 5 3 tennis</row> <row>New swim ball blue 2 5 pool</row> <row>Swift golf ball white 10 1 golf</row> <row>Leather soccer ball checkered 1 20 soccer</row> </resultset> </result> </cncresult> <timestamp>2009-05-13T22:45:10Z</timestamp> <execstatus>0</execstatus> </response> </iway>
Syntax:
com.ibi.agents.XDSREGAgent
Description:
This service sets one or more special registers under program control. The registers can be set to any of the supported scopes (message, flow, or thread) and can be of any defined category (hrd, user, or doc). Registers cannot be set above the Message scope.
Parameters:
Parameter | Description |
---|---|
Type of variable | Type of variable (headers appear in emitted documents as header values). Select one of the following options from the drop-down list:
|
Scope of variable | For process flows, scope can be for all nodes or only nodes forward on this edge. Select one of the following options from the drop-down list:
Flow- and message-scoped variables have one shared copy for the entire process flow. Therefore, a change made to the variable will be seen on all parallel paths. Unless various points of the parallel process flows are synchronized, the results that are written to a global variable may leave the variable with an unpredictable value. Flow-scoped variables are deleted at the termination of the process flow (or sub-flow) in which they are declared. If you need a variable to be available to the calling process flow (parent flow) or to subsequent components, such as outlets and emitters, select Message as the scope. Thread-scoped variables are duplicated for each parallel document path, allowing independent manipulation of each copy. After parallel paths converge at a Join object, the value of the thread is undefined. |
Automatic evaluation | Causes contents to be evaluated to hold functions. Select one of the following options from the drop-down list:
To summarize, if you select false, the expression is not evaluated upon storage into the SREG. If you select true, the contents of the SREG are evaluated every time it is retrieved. For expressions that have different results at different times, this offers more functionality than storing the result once (for example, an expression that formats a timestamp saved to an SREG). However, if the Automatic evaluation parameter is set to true for _flatof(), XPATH, or other operations that pertain to the document itself, the result will always be NULL because access to “the document” is not available. |
Call at EOS? | In a streaming environment, EOS (End of Stream) is the short message that is sent after the last document, which signifies the EOS. This parameter determines whether this service should be called for the EOS message? The default value is false. |
Example:
The SREG Service can be used to save a state of the current document or a document specific parameter, such as an XPATH value. For example, you need to run a transformation on a document, but also want to capture the document first by saving it in a SREG value. In the event of an error during the transformation, you can provide the original document that caused the error.
The service can be invoked using the typical parameter values, as shown in the following image:
The user-defined parameters pane is where the SREGs must be defined, as shown in the following image:
The following SREG types are supported:
Syntax:
com.ibi.agents.XDSregInsertToDocAgent
Description:
This service inserts special register groups into the document. Select a prefix or a namespace for a group of registers and insert them as elements under the specified node. Special register names and values will be inserted as attributes. You would want to use this service if you need to insert a number of elements into your document, but you do not initially know how many of them will be defined in runtime.
Parameters:
Parameter | Description |
---|---|
XPATH for Parent Node | The parent node. |
Element name for the new nodes | Element name for the new nodes. |
SREG Prefix | The namespace being used. |
Attribute name for keys | An attribute name for the SREG name. |
Attribute name for values | An attribute name for the SREG value. |
Example:
The following is a sample input document:
<root> <group> </group> <data> ... </data> </root>
The following parameters are defined:
Parameter | Value |
---|---|
XPATH for Parent Node | /root/group |
Element name for the new nodes | sreg |
SREG Prefix | mysregs. |
Attribute name for keys | name |
Attribute name for values | value |
The following special registers are defined:
The following is a sample output document:
<root> <group> <sreg name="first" value="one" /> <sreg name="second" value="two" /> <sreg name="third" value="three" /> </group> <data> ... </data> </root>
If running it with <Test>sreg(iwayhome)</Test>, the service successfully inserts iwayhome in the document:
<?xml version="1.0" encoding="UTF-8" ?> <Test> <META test="C:/IWAY60~3/" /> </Test>
Syntax:
com.ibi.agents.XDSREGNamespaceAgent
Description:
This service performs the following operations on registers in namespaces:
The SREG namespace service offers from name and to name combo-box parameters. Each of these parameters offers the [listener] and [default] options which are interpreted as described above.
Parameters:
Parameter | Description |
---|---|
Function * | Determines which function should be performed by the service. Select one of the following options from the drop-down list:
|
From Namespace * | Copy/move/exist/delete from namespace. Select [listener-xx] from the drop-down list to receive the values configured on the listener. |
To Namespace | Copy/move to namespace. Select [listener-xx] from the drop-down list to receive the values configured on the listener. |
Syntax:
com.ibi.agents.SWIFTOutReportAgent
Description:
This service creates a SWIFT Validation Report for SWIFT outbound (XML to SWIFT) documents. When configured with a preemitter, this service creates an XML document that contains any errors in the generated SWIFT document. For more information, see the iWay Integration Solution for SWIFT User's Guide.
Parameters:
Parameter | Description |
---|---|
Basic Header | If set to true, a Basic Header is added to the report. |
Application Header | If set to true, an Application Header is added to the report. |
User Header | If set to true, a User Header is added to the report. |
Syntax:
com.ibi.agents.XDSWIFTTransformAgent
Description:
This service transforms SWIFT FIN messages to SWIFT XML documents. For more information, see the iWay Integration Solution for SWIFT User's Guide.
Parameters:
Parameter | Description |
---|---|
Base Path * | Base path to the transform template. |
Version * | The SWIFT version. |
Block 4 Delimiter | If set to true, a delimiter is inserted into SWIFT Block 4. |
Syntax:
com.ibi.agents.XDSWIFTValidationReportAgent
Description:
This service creates a SWIFT Validation Report for SWIFT inbound (SWIFT to XML) documents. When configured with a preparser this service creates an XML document that contains any errors in the SWIFT document that is received. For more information, see the iWay Integration Solution for SWIFT User's Guide.
Parameters:
Parameter | Description |
---|---|
Basic Header | If set to true, a Basic Header is added to the report. |
Application Header | If set to true, an Application Header is added to the report. |
User Header | If set to true, a User Header is added to the report. |
Syntax:
com.ibi.agents.XDIWAYSWIFTXMLTransformAgent
Description:
This service transforms SWIFT XML documents to SWIFT FIN messages. For more information, see the iWay Integration Solution for SWIFT User's Guide.
Parameters:
Parameter | Description |
---|---|
SWIFT FIN Message Version * | The SWIFT FIN message version. |
Transformation Template * | The template used for the conversion. |
Encoding | The encoding type for the output. |
Validation Off | Enables or disables XMLG SWIFT validation. |
Block 4 Delimiter | If set to true, a delimiter is inserted into SWIFT Block 4. |
Syntax:
com.ibi.agents.XDTCPEmitAgent
Description:
This service emits a document over TCP/IP.
Parameters:
Parameter | Description |
---|---|
Host * | The machine name or IP address of the TCP host. |
Port * | The port to which to connect to the host. |
Sending Type | Select one of the following options from the drop-down list:
|
Return | Select one of the following options from the drop-down list:
|
IP Interface Host | Local IP interface host from which the outgoing IP socket originates. |
IP Interface Port | Local IP interface port from which the outgoing IP socket originates. |
Timeout | Timeout interval for socket. The protocol will test for STOP each cycle of this period. |
Example:
The following is an example of configuration settings for a TCP Emit service object in iWay Designer:
A simple way to test your TCP emitted messages is to configure another running channel with a TCP listener and an appropriate emitter (for example, a File emitter) to consume the messages that are emitted by the service. The following is an example of configuration settings for a TCP listener:
After deploying and starting the channel with the TCP listener and File emitter, you can test run your process flow containing the TCP Emit service object. You must supply an incoming document that contains the appropriate content. For example, HTML:
<html> <head> <title>my iWay tcp</title> </head> <body> Testing TCP Emit Service! </body> </html>
If the service runs successfully, the TCP listener picks up the sample HTML document that is emitted by the TCP Emit service. The HTML document is then received in the destination folder that is specified for the File emitter.
Syntax:
com.ibi.agents.XDTIBRVEmitAgent
Description:
This service sends the message to the TIBCO Rendezvous queue and waits for a response. For more information, see the iWay Service Manager Protocol Guide.
Parameters:
Parameter | Description |
---|---|
Send subject | The subject to which the message will be emitted. |
Reply subject | The subject to which the message's response is to be sent. |
Field name | Field (message) name. |
Service name | The service name. |
Network name | The network name. |
Daemon host:port | Daemon host:port |
Synchronous Send | Send the message and wait for the response. Select one of the following options from the drop-down list:
|
Timeout | Maximum time to wait for the answer (in seconds), -1 means infinite wait. |
Data Type | Reads a file and returns the read result. Select one of the following options from the drop-down list:
|
Preemitter | Determines whether any preemitter should be avoided. Select one of the following options from the drop-down list:
|
Return document | Select one of the following options from the drop-down list:
|
Syntax:
com.ibi.agents.XDTransformAgent
Description:
This service applies a defined transform to each document. The transform name should be an alias specified in the transforms section of the engine configuration. The transformation can be an iWay transform or an XSLT transform. The transform service is especially useful as part of a sequence of business services in which the output is chained to another business service to execute a business process.
Note: The Transform service is only used to call a transform dynamically. Otherwise, you must configure a Transform object using iWay Designer. In order for a transform to be called properly during run time, the transform must be contained in a process flow, which is deployed as a service.
Parameters:
Parameter | Description |
---|---|
Transform name * | The name of the defined transform to execute. |
Expected input | Type of input document expected to be received for the transform. |
Document type | Type of output document being emitted by the transform. |
Engine | Type of transform. |
Trim | Should data be trimmed before transforming? |
Called at EOS? | In streaming a last call is made AFTER the last document. Does this process flow want to be called? |
Guid | The component guid. |
Syntax:
com.ibi.agents.EvalWalk
Description:
This service evaluates all functions within a tree. It implements the iWay Active Document within a service. The exit evaluates each attribute and entity value in the document, executing all iWay functions. For example, the following node:
<node1/ATR1="_ISERROR()">SREG(ip)</node1>
might become:
<node1/ATR1="false">123.45.678.910</node1>
Example:
If running it with <Test>sreg(iwayhome)</Test>, the result is:
<?xml version="1.0" encoding="UTF-8" ?> <Test>C:/IWAY60~1/</Test>
Syntax:
com.ibi.agents.XDUpdateCorrelEntryAgent
Description:
This service uses the correlation management bus to update a correlated process.
Parameters:
Parameter | Description |
---|---|
Correlation ID * | The identifier for the correlated process. Normally a runtime function such as XPATH() or SREG(). |
Namespace | Namespace for the correlation ID. IDs will normally be unique within a namespace. |
Activity Type * | Determines the type of update. |
Close Correlated Process * | If set to true, the correlated process is closed. |
Comment | Any additional information associated with this correlated process. |
Syntax:
com.ibi.agents.XDWSClientAgent
Description:
This service executes a Web service and allows a transformation to be applied to the response.
Parameters:
Parameter | Description |
---|---|
End point * | The location where the Web service has been deployed. |
SOAP Action | Value of the SOAPAction header for HTTP. |
Header | The header of the Web service message. This value can be a file name, transform, or actual data with SREG, XPATH, and so on. |
Body | The body of the Web service message. Can be a file name, transform, or actual data with SREG, XPATH, and so on. |
Response Transform | Transformation for the Web service response. |
Fault Transform | Transformation for Web service fault. |
Strip SOAP Envelope | Removes SOAP envelope from the response document. |
Proxy | If enabled, emit through proxy server. |
Proxy URL | The URL of the proxy server. |
Proxy User ID | User ID for basic authentication challenges issued by the proxy. |
Proxy Password | Password for basic authentication challenges issued by the proxy. |
User ID | User ID for basic authentication challenges. |
Password | Password for basic authentication challenges. |
Syntax:
com.ibi.agents.XDX12ValidationReportAgent
Description:
This service produces a validation report (from the EDI rules validation) after validating an incoming EDI X12 message in XML format. This service is used in tandem with the XML to X12 transformation service.
Syntax:
com.ibi.agents.XDXALogInquiryByContextAgent
Description:
This service queries the activity bus driver by date and context.
Parameters:
Parameter | Description |
---|---|
Start Date * | Report records after this date. |
End Date * | Report records before this date. |
Max Rows * | Maximum number of rows to return. A value of 0 means no limit. |
Name of special register to match * | Queries the activity bus driver by date and context. |
Max Rows | Maximum number of rows to return. A value of 0 means no limit. |
Syntax:
com.ibi.agents.XDXALogInquiryByDateAgent
Description:
This service queries the activity bus driver by date.
Parameters:
Parameter | Description |
---|---|
Start Date * | Report records after this date. |
End Date * | Report records before this date. |
Max Rows | Maximum number of rows to return. A value of 0 means no limit. |
Syntax:
com.ibi.agents.XDXALogInquiryByPartnerAgent
Description:
This service queries the activity bus driver by date and partners.
Parameters:
Parameter | Description |
---|---|
Start Date * | Report records after this date. |
End Date * | Report records before this date. |
Partner From | Partner where the message is coming from. Leave empty if not used. |
Partner To | Partner where the message is going. |
Max Rows | Maximum number of rows to return. A value of 0 means no limit. |
Syntax:
com.ibi.agents.XDXALogInquiryByTIDAgent
Description:
This service queries the activity bus driver by transaction ID.
Parameters:
Parameter | Description |
---|---|
Transaction ID * | The transaction ID to match. |
Record Type | The specific record type to match. A value of 0 matches any record type. |
Syntax:
com.ibi.agents.XDXMLDSigCreateAgent
Description:
This service is used to generate an XML Digital Signature.
Parameters:
Parameter | Description |
---|---|
XML Digital Signature JCE Provider | JCE Provider for the XMLSignatureFactory service. |
Canonicalization Method | Algorithm used to canonicalize the SignedInfo element before it is digested as part of the signature operation. |
Canonicalization Method Parameters | Parameters for the Canonicalization Method. For Inclusive Canonical XML, this is empty. For Exclusive Canonical XML, this is a space separated list of XML namespace prefixes. |
Signature Method | Signature algorithm used to convert the canonicalized SignedInfo into the SignatureValue. |
Signature Key | |
KeyStore Provider | Provider for the keystore containing the signature private key. |
Signing Key Alias | Private key alias used to sign the SignedInfo. |
Signing Key Password | Password for the signing private key. If left blank, the password for accessing the keystore will be used. |
Enforce KeyUsage Extension | If set to true, the verify certificates used for signing allow the digitalSignature KeyUsage extension. |
Signature Location | |
XML Namespace Provider | Provider for the mapping between XML namespace prefix and namespace URI. If left blank, Elements in the XML Digital Signature will use the default namespace, and XPATH expressions in the Parent and Next Sibling Paths cannot contain namespaces. |
Create Parent Element | Determines whether the parent element is created if it is missing. Select true or false (default) from the drop-down list. |
Signature Parent Element | Path to the element where the signature will be inserted. If left blank, the signature parent is the root element. If the Create Parent Element parameter is set to true, the XPATH expression must be of the form /comp1/comp2/... where each path component has the following form: ns:elem[@ns1:attrib="attribValue"] The ns: and ns1: namespace prefixes are optional, but if present they must be declared in the XML Namespace Provider parameter. The selector in square brackets is optional. If no element with a matching attribute is found and Create Parent Element is true, then both the element and the attribute will be created. |
Signature Next Sibling | Path to the next sibling node. The signature will be inserted before this node. If left blank, the signature is added as the last child of the parent. |
Key Info | |
Include Issuer Serial | Determines whether the X509IssuerSerial element is included in the KeyInfo X509Data element. Select true or false (default) from the drop-down list. |
Include Subject Name | Determines whether the X509SubjectName element is included in the KeyInfo X509Data element. Select true (default) or false from the drop-down list. |
Include Certificate Chain | Determines how much of the signer certificate chain is included in the KeyInfo X509Data element. Select one of the following values from the drop-down list:
|
Include WSSE Security Token Reference | Determines whether a WSSE SecurityTokenReference is included in the KeyInfo element. Select true or false (default) from the drop-down list. |
WSSE Security Token Id | The value of the BinarySecurityToken ID attribute referenced by the WSSE SecurityTokenReference. If left blank, the default value is x509_signer. |
ID Attributes | |
Signature Id | The value of the Signature Id Attribute. If left blank, the generated Signature element will not have an Id attribute. |
SignatureValue Id | The value of the SignatureValue Id Attribute. If left blank, the generated SignatureValue element will not have an Id attribute. |
SignedInfo Id | The value of the SignedInfo Id Attribute. If left blank, the generated SignedInfo element will not have an Id attribute. |
KeyInfo Id | The value of the KeyInfo Id Attribute. If left blank, the generated KeyInfo element will not have an Id attribute. |
ID Attributes | Space-separated list of attributes that are considered type ID. The value of an ID attribute can be used in a same-document reference with a URI of the form #idvalue. Each attribute declaration has the form ns:*/@ns1:attrib or @ns1:attrib In this declaration, ns: and ns1: are optional. If used, the ns and ns1 prefixes must be declared in the XML Namespace Provider parameter. The form @ns1:attrib means an attribute named attrib in XML Namespace ns1. The form ns:*/@ns1:attrib is similar except the attribute must also appear on an element of any name in the XML Namespace ns. The default value is: xml:id ds:*/@Id wsu:Id |
Reference 1 | |
Reference 1 URI | URI to the first piece of data that will be digested and signed. If the left blank, the whole XML document will be digested and signed. |
Reference 1 Digest Method | Digest algorithm applied to the first reference data (after Transforms are applied if specified) to yield the DigestValue. |
Reference 1 Transform 1 | First transform algorithm to apply to the first reference data. |
Reference 1 Transform 1 Parameters | Parameters for the first transform algorithm to apply to the first reference data. For Exclusive Canonical XML, this is a space separated list of XML namespace prefixes. For XSLT, this is the name of a defined transform. For XPathFilter, this is an XPATH expression. For XPathFilter2, this is the string intersect, subtract or union, followed by an XPATH expression. For more XPathFilter2 XPathType clauses, create user parameters called ref1transform1parms[Z], ref1transform1parms[Z]nsmap where Z >= 2. |
Reference 1 Transform 1 XML Namespace Provider | Provider for the XML Namespace Map for XPathFilter and XPathFilter2 transforms. |
Reference 1 Transform 2 | Second transform algorithm to apply to the first reference data. |
Reference 1 Transform 2 Parameters | Parameters for the second transform algorithm to apply to the first reference data. For Exclusive Canonical XML, this is a space separated list of XML namespace prefixes. For XSLT, this is the name of a defined transform. For XPathFilter, this is an XPATH expression. For XPathFilter2, this is the string intersect, subtract or union, followed by an XPATH expression. For more XPathFilter2 XPathType clauses, create user parameters called ref1transform2parms[Z], ref1transform2parms[Z]nsmap where Z >= 2. |
Reference 1 Transform 2 XML Namespace Provider | Provider for the XML Namespace Map for XPathFilter and XPathFilter2 transforms. |
Reference 2 | |
Reference 2 URI | URI to the second piece of data that will be digested and signed. If you need more references, create user parameters named ref[X]uri, ref[X]digest, ref[X]transform[Y], ref[X]transform[Y]parms[Z] where X >= 3, Y >= 1, Z >= 1. For example, ref3transform2 is the second transform of the third reference. |
Reference 2 Digest Method | Digest algorithm applied to the second reference data (after Transforms are applied if specified) to yield the DigestValue. |
Reference 2 Transform 1 | First transform algorithm to apply to the first reference data. |
Reference 2 Transform 1 Parameters | Parameters for the first transform algorithm to apply to the second reference data. For Exclusive Canonical XML, this is a space separated list of XML namespace prefixes. For XSLT, this is the name of a defined transform. For XPathFilter, this is an XPATH expression. For XPathFilter2, this is the string intersect, subtract or union, followed by an XPATH expression. For more XPathFilter2 XPathType clauses, create user parameters called ref2transform1parms[Z], ref2transform1parms[Z]nsmap where Z >= 2. |
Reference 2 Transform 1 XML Namespace Provider | Provider for the XML Namespace Map for XPathFilter and XPathFilter2 transforms. |
Reference 2 Transform 2 | Second transform algorithm to apply to the second reference data. |
Reference 2 Transform 2 Parameters | Parameters for the second transform algorithm to apply to the second reference data. For Exclusive Canonical XML, this is a space separated list of XML namespace prefixes. For XSLT, this is the name of a defined transform. For XPathFilter, this is an XPATH expression. For XPathFilter2, this is the string intersect, subtract or union, followed by an XPATH expression. For more XPathFilter2 XPathType clauses, create user parameters called ref2transform1parms[Z], ref2transform2parms[Z]nsmap where Z >= 2. |
Reference 2 Transform 2 XML Namespace Provider | Provider for the XML Namespace Map for XPathFilter and XPathFilter2 transforms. |
The parameters can be divided into the following groups: signature algorithm, signing key, parent element, KeyInfo content, Id Attributes, and References.
The signature algorithm parameters are:
The JCE Provider for the XMLSignatureFactory service must be set to XMLDSig to select the XML Digital Signature implementation.
The Canonicalization Method is the Algorithm used to canonicalize the SignedInfo element before it is digested as part of the signature operation. It can be the URI for Inclusive Canonical XML with or without comments, or the URI for Exclusive Canonical XML with or without comments. For Inclusive Canonical XML, the Canonicalization Method Parameters are empty. For Exclusive Canonical XML, the Canonicalization Method Parameters hold a space separated list of XML namespace prefixes.
The Signature Method is the Signature algorithm used to convert the canonicalized SignedInfo into the SignatureValue. It can be the full URI for rsa-sha1 or dsa-sha1.
The signing key parameters are:
The KeyStore Provider is the name of the provider that holds the private key. The Signing Key Alias and Signing Key Password are the Alias and Password for the private key. This key must be compatible with the signature algorithm chosen in the Signature Method parameter. When the Enforce KeyUsage Extension parameter is on, it will ensure certificates used for signing to allow the digitalSignature KeyUsage extension.
The parent element parameters are:
The XML Namespace Provider is optional. It is the name of the provider that gives the mapping between XML Namespace prefixes and XML Namespace URIs. If left blank, the Signature Parent Element and Signature Next Sibling path expressions cannot contain namespace prefixes. The XML Namespace Provider is also used to choose a prefix for the Signature elements. If the http://www.w3.org/2000/09/xmldsig# namespace is not found, the generated Signature element will redeclare the default namespace to this URI.
The Create Parent Element parameter is a boolean. If true, the Signature Parent Element will be created when missing from the XML Document. To make the creation of the parent possible, the Signature Parent Element must be a restricted XPATH expression. If false, the Signature Parent Element can be any XPATH 1.0 expression but the element must already exist in the XML Document.
The Signature Parent Element is an XPATH expression pointing to the element where the ds:Signature element will be inserted.
The Signature Next Sibling is an XPATH expression that points to a child of the parent element. The signature will be inserted before this node. If left blank, the signature is added as the last child of the parent.
The KeyInfo content parameters are:
These parameters determine the content of the generated KeyInfo element. They can be used alone or in any combinations. If none of the parameters are used, the KeyInfo element will not appear.
The Include Issuer Serial boolean parameter determines whether a KeyInfo/X509Data/X509IssuerSerial element is generated. This element uniquely describes the signer certificate by listing the Issuer DN and the certificate Serial Number.
The Include Subject Name boolean parameter determines whether a KeyInfo/X509Data/X509SubjectName element is generated. This element contains the signer certificate subject DN.
The Include Certificate Chain parameter determines how many certificates in the certificate chain are included in the KeyInfo. The choices are: no certificates, just the signer certificate, or all certificates. Each certificate is base64 encoded in a separate KeyInfo/X509Data/X509Certificate element.
The Include WSSE Security Token Reference parameter determines whether a KeyInfo/SecurityTokenReference element is generated to point to a previously generated WSSE Binary Security Token. If on, the WSSE Security Token Id parameter specifies the Id of the existing Binary Security Token. The InsertWSSETokenAgent is a convenient way to pre-generate the Binary Security Token. In that case, the Security Token Id can be retrieved with the expression SREG(wsse_token_id)
The Id Attribute parameters are:
The Signature Id, SignedInfo Id, SignatureValue Id and KeyInfo Id parameters specify the value of the Id attribute on the Signature, Signature/SignedInfo, Signature/SignatureValue and Signature/KeyInfo elements respectively. If left blank, the Id attribute will not appear.
The ID Attributes parameter is a space-separated list of attributes that are considered type ID. The value of an attribute can be used in a same-document reference with a URI of the form #idvalue but only if it declared of type ID. This parameter performs this type assignment. Each attribute declaration has the form ns:*/@ns1:attrib or @ns1:attrib where ns: and ns1: are optional. If used, the ns and ns1 prefixes must be declared in the XML Namespace Provider. The form @ns1:attrib means an Attribute named attrib in XML Namespace ns1. The form ns:*/@ns1:attrib is similar except the attribute must also appear on an element of any name in the XML Namespace ns. The default value is: xml:id ds:*/@Id wsu:Id. The namespace prefix actually used is not important. Only the namespace URI is used to find a match.
The Reference parameters are:
The reference URIs supported are: <empty string> for the whole XML Document; #idattrib for the same-document sub-tree rooted at the element that has an ID attribute with value idattrib; cid:contentid for the attachment that has a Content-ID header with value <contentid>; http://host:port/page for the resource located at this HTTP address, and possibly other URLs built-in to the JDK 1.6.
The Reference 1 URI parameter is the URI to the first piece of data that will be digested and signed. If the left blank, the whole XML document will be digested and signed.
The Reference 1 Digest Method is the digest algorithm applied to the reference data (after Transforms are applied if specified) to yield the DigestValue. The choices are the full URI corresponding to sha1, sha256 or sha512.
The Reference 1 Transform 1 is the first transform algorithm to apply to the reference data. The Reference 1 Transform 1 Parameters contain the parameters for the transform. Many transforms have implicit parameters and do not require any explicit parameters. For Exclusive Canonical XML, this is a space separated list of XML namespace prefixes.
The Reference 1 Transform 2 is the second transform and Reference 1 Transform 2 Parameters specify its parameters.
Subsequent references 2, 3, ... are similar to reference 1 except a missing reference URI indicates the end of the list of references instead of the whole document.
The list of transforms per reference is not limited to 2. Any number of transforms can be specified using user parameters.
The list of references is not limited to 2. Any number of references can be specified using user parameters.
Transforms Available to Digital Signature Agent | |
XPathFilter | The user must provide the XPATH expression in ref[X]transform[Y]parms1 and optionally an XML Namespace provider name in ref[X]transform[Y]parms1nsmap to declare a namespace map. |
XPathFilter2 | Each XPathType can be declared by a pair of parms: ref[X]transform[Y]parms[Z] and optionally ref[X]transform[Y]parms[Z]nsmap. ref[X]transform[Y]parms[Z] must start with the string intersect, subtract or union, followed by an XPATH expression. ref[X]transform[Y]parms[Z]nsmap if present must be the name of an XML Namespace Provider to declare the Namespace map for this XPathType. |
XSLTTransform | The parms to the transform is the name of a defined transform (similar to what is done with the XDGenTransform agent). The defined transform must be an XSLT transform and return XML. |
Attachment Content Signature Transform | No parameters are required. |
If you need more references, create user parameters named ref[X]uri, ref[X]digest, ref[X]transform[Y], ref[X]transform[Y]parms where X >= 3 and Y >= 1, for example, ref3transform2 is the second transform of the third reference.
When the debug level is on, the agent will show the referenced data that was digested.
The following is an example of a signature over the entire document with some X509 information under the Signature/KeyInfo/X509Data element.
The following is an example of a signature over the SOAP Body with a WSSE SecurityTokenReference in the KeyInfo pointing to a WSSE BinarySecurityToken previously generated in the SOAP Headers.
Available Response Edges for XDXMLDSigCreateAgent
When you connect the XDXMLDSigCreateAgent object to an End object using the OnCustom build relation in a process flow, the available line edges are provided in the Line Configuration dialog box.
The following table lists and describes the available line edges for the XDXMLDSigCreateAgent object.
Line Edge | Description |
---|---|
OnError | Error |
OnSuccess | Success |
OnFailure | Failure |
Syntax:
com.ibi.agents.XDXMLDSigVerifyAgent
Description:
This service is used to validate an XML Digital Signature.
Parameters:
Parameter | Description |
---|---|
XML Digital Signature JCE Provider | JCE Provider for the XMLSignatureFactory service. |
TrustStore Provider | Provider for the keystore containing the Certificate Authorities. |
Certificate Store Provider | Comma-separated List of Keystore, Directory CertStore or LDAP providers for the certificate stores used to complete signer certificate chains when the signature contains fewer certificates than needed. |
PKIX Signature JCE Cryptography Provider | JCE Provider for Signature Objects created by the PKIX Certificate Path Builder. |
PKIX JCE Provider | JCE Provider for PKIX services. If left blank, the default JCE provider for PKIX will be used. |
Enable Certificate Revocation | If set to true, use the CRLs from the CertStore to check whether the signer's certificate has been revoked. |
Enforce KeyUsage Extension | If set to true, verify certificates used for signing allow the digitalSignature KeyUsage extension. Select true or false (default) from the drop-down list. |
XML Namespace Provider | Provider for the mapping between XML namespace prefix and namespace URI. If left blank, the XPATH expression in the Element Path and Required Signature Coverage parameters cannot contain namespaces. |
Signature Element Path | Path to the signature XML element. If left blank, the agent will search throughout the document for an element named Signature in the namespace http://www.w3.org/2000/09/xmldsig#. |
ID Attributes | Space-separated list of attributes that are considered type ID. The value of an ID attribute can be used in a same-document reference with a URI of the form #idvalue. Each attribute declaration has the form ns:*/@ns1:attrib or @ns1:attrib where ns: and ns1: are optional. If used, the ns and ns1 prefixes must be declared in the XML Namespace Provider. The form @ns1:attrib means an Attribute named attrib in XML Namespace ns1. The form ns:*/@ns1:attrib is similar except the attribute must also appear on an element of any name in the XML Namespace ns. The default value is xml:id ds:*/@Id wsu:Id. |
Acceptable Transforms | Space-separated list of transforms that can appear in the XML Digital Signature; other transforms will cause a validation failure before being evaluated. If this field is left blank, all transforms are accepted. |
Required Signature Coverage | An XPATH expression that returns a node set, where each node in the set must have been signed by the Signature to be considered valid. |
Unsigned Attachment | Action to perform when a document contains an unsigned attachment. Select one of the following values from the drop-down list:
|
Remove Security Parent Element | If set to True, the WSSE Security parent element is removed from the document after the verification is successful. |
The JCE Provider for the XMLSignatureFactory service must be set to XMLDSig to select the XML Digital Signature implementation.
The agent recovers the signer public key based on the information it finds in the KeyInfo element. To begin, the agent collects all the X509Certificates and X509CRLs under the X509Data element and creates a certificate store. This store together with the certificate store providers will be used to complete the certificate chain. The agent then iterates through the KeyInfo content. The agent understands X509IssuerSerial, X509SubjectName and X509SKI (for example, the Subject Key Identifier). The agent also understands a wsse:SecurityTokenReference pointing to a wsse:BinarySecurityToken holding an X509 certificate encoded in base64. The agent iterates in order of appearance and works with the first item it understands ignoring subsequent ones. A Certificate selector is created and the CertStores are queried to complete and validate the chain.
If the signature validates, the agent will continue on the success edge. The xmldsig_signer special register will hold the signer DN and the xmldsig_signer_cn will hold the Common Name found in the signer DN. If validation fails because of Unsigned Attachments or incomplete Required Signature Coverage, the agent will follow the fail_coverage edge. If validation fails for other reasons, the agent will follow the fail_verify edge. If there is no signature, the flow will continue on the unsigned edge.
When the debug level is on, the agent will show the referenced data that was actually digested. It will also show whether core validation passed, and the validation status of each reference.
Multiple WSSE Secuity Headers
The WSSE Timestamp, WSSE SecurityToken, SAML Assertion, and XML Digital Signature will often appear within a WSSE Security header. It is sometimes desirable to create multiple WSSE Security Headers in the same document because they are distined for different actors. The agents must choose the WSSE Security Header with the right actor when inserting the new content. The solution is to write the XPATH expression with a selector for the Actor attribute.
The following is a path that selects the WSSE Security Header destined for myActor even if there are other WSSE Security headers present: /soapenv:Envelope/soapenv:Header/wsse:Security[@soapenv:Actor=\"myActor\"]
This expression is valid for full XPATH 1.0 or restricted XPATH. When "Create Parent Element" is true and the WSSE Security Header is not found, the agent will create a new WSSE Security Header and create the Actor attribute before inserting the new content.
Available Response Edges for XDXMLDSigVerifyAgent
When you connect the XDXMLDSigVerifyAgent object to an End object using the OnCustom build relation in a process flow, the available line edges are provided in the Line Configuration dialog box.
The following table lists and describes the available line edges for the XDXMLDSigVerifyAgent object.
Line Edge | Description |
---|---|
OnError | Error |
OnSuccess | Success |
OnFailure | Failure |
fail_unsigned | fail_unsigned |
fail_verify | fail_verify |
fail_coverage | fail_coverage |
Syntax:
com.ibi.agents.XDZipOutAgent
Description:
This service converts an input document into a compressed .zip file.
Parameters:
Parameter | Description |
---|---|
Entry name * | The name associated with this entry. |
Comment | A comment associated with this entry. |
Example:
The following is an example of configuration settings for a Zip Out service object in iWay Designer:
You can test the Zip Out service by configuring a channel with a basic File listener and a route, which is associated with a process flow containing a Zip Out service object.
The contents of the incoming message are added to a .zip file, which is placed in the destination folder of your File listener. The entry in the .zip file is composed from the value that is specified for the Entry name parameter (for example, testzip.xml). When you configure the File listener, it is recommended to specify zip for the Suffix Out parameter. However, you can always rename the extension of the output file that is generated to .zip and extract the contents.
iWay Software |