Available Services

The following section provides a comprehensive reference for all the predefined services that are supplied with iWay Service Manager.

Service Name

Accumulate EOS Service (com.ibi.agents.XDAccumEOSAgent)

Activity Log Business Error Message Service (com.ibi.agentsXDXALogBizErr)

Activity Log Entry Service (com.ibi.agents.XDXALogEvent)

Add Attachment Service (com.ibi.agents.XDAddAttachmentAgent)

Add Attachment From File Service (com.ibi.agents.XDAddAttachmentFromFileAgent)

Add Correl Entry Service (com.ibi.agents.XDAddCorrelEntryAgent)

Alt Route IP Service (com.ibi.agents.XDAltRouteIP)

AQ Emit Service (com.ibi.agents.XDAQEmitAgent)

AS 1 Emit Service (com.ibi.agents.AS1EmitAgent)

AS 2 Emit Service (com.ibi.agents.AS2EmitAgent)

AS 2 Nonblocking Emit Service (com.ibi.agents.XDNAS2EmitAgent)

AS 2 Nonblocking Send MDN Service (com.ibi.agents.XDMDNSendNowAgent)

Attachment Operations Service (com.ibi.agents.XDAttachOps)

Attachment to Document Service (com.ibi.agents.XDAttachmentToDocAgent)

Authenticate/Impersonate Service (com.ibi.agents.XDPrincipalAgent)

Blank Elimination Service (com.ibi.agents.XDBlankWalk)

Base64 Operation Service (com.ibi.agents.XDBase64Agent)

C Char Filter Service (com.ibi.agents.CCharFilter)

Catch Service (com.bi.agents.XDCatchAgent)

Channel Information Service (com.ibi.agents.XDChanInfoAgent)

Check Schema Service (com.ibi.agents.CheckSchema)

Note: The CheckSchema service has been deprecated. Use the XDCheckSchema service instead.

Check Schema Service (com.ibi.agents.XDCheckSchema)

Commit or Rollback within a Flow (com.ibi.agents.XDCommitAgent)

Constant Service (com.ibi.agents.XDConstantAgent)

Control Activity Log Exit Service (com.ibi.agents.XDXalogControlAgent)

Controls Channel Service (com.ibi.agents.XDControlAgent)

Correl Inquiry Service (com.ibi.agents.XDCorrelInquiryAgent)

Correl Inquiry By State Service (com.ibi.agents.XDCorrelInquiryByStateAgent)

Correl Set Inquiry Service (com.ibi.agents.XDCorrelSetInquiryAgent)

Deflate Service (com.ibi.agents.XDDeflateAgent)

Document Update Service (com.ibi.agents.XDDocUpdateAgent)

Document Copy Service (com.ibi.agents.XDCopyAgent)

Document to Attachment Service (com.ibi.agents.XDAttachmentFromDocAgent)

Email Emit Service (com.ibi.agents.XDEmailEmitAgent)

Entag Service (com.ibi.agents.XDEntagAgent)

Execute ETL Service (com.ibi.agents.XDETLAgent)

Fail Service (com.ibi.agents.XDFailAgent)

File Accumulator Service (com.ibi.agents.XDFileAccumAgent)

File Directory Contents Service (com.ibi.agents.XDFileDirListAgent)

File Emit Service (com.ibi.agents.XDFileEmitAgent)

File Read Service (com.ibi.agents.XDFileReadAgent)

FTP Connection Cache Service (com.ibi.agents.XDFTPConnectionCacheAgent)

FTP Directory List Service (com.ibi.agents.XDFTPDirListAgent)

FTP Emit Service (com.ibi.agents.XDFTPEmitAgent)

FTP File Operations Service (com.ibi.agents.XDFTPFileOpsAgent)

FTP Read Service (com.ibi.agents.XDFTPReadAgent)

FTP SREG Service (com.ibi.agents.XDFTPSREGAgent)

HTTP Emit Service (com.ibi.agents.XDHTTPEmitAgent)

HTTP Nonblocking Emit Service (com.ibi.agents.XDNHttpEmitAgent)

HTTP Read Service (com.ibi.agents.XDHTTPReadAgent)

Inflate Service (com.ibi.agents.XDInflateAgent)

Insert SAML Assertion Service (com.ibi.agents.XDInsertSAMLAssertionAgent)

Insert WSSE Timestamp Service (com.ibi.agents.XDInsertWSSETimestampAgent)

Insert WSSE Token Service (com.ibi.agents.XDInsertWSSETokenAgent)

Internal Emit Service (com.ibi.agents.XDInternalEmitAgent)

Is Reachable Service (com.ibi.agents.XDIsReachable)

iWay Adapter (com.ibi.agents.XDAdapterAgent)

JDBC Service (com.ibi.agents.XDJdbcAgent)

JMS Read Agent (com.ibi.agents.XDJMSReadAgent)

JMSQ Browse Service (com.ibi.agents.XDJMSBrowse)

JMSQ Emit Service (com.ibi.agents.XDJMSQEmitAgent)

Legacy Record to XML Converter Service                   (com.ibi.agents.XDLegacyRecordToXMLAgent)

Local Master Service (com.ibi.agents.LocalMasterAgent)

Mail Attach Service (com.ibi.agents.XDMailAttachAgent)

Mark Attach Service (com.ibi.agents.XDMarkAttachAgent)

Marshal Service (com.ibi.agents.XDMarshallAgent)

Move Service (com.ibi.agents.XDMoveAgent)

MQ Emit Service (com.ibi.agents.XDMQEmitAgent)

MQ Read Service (com.ibi.agents.XDMQReadAgent)

MSMQ Emit Service (com.ibi.agents.XDMSMQEmitAgent)

MTOM Service (com.ibi.agents.XDMTOMAgent)

Node Set Extract Service (com.ibi.agents.XDNodeSetExtractAgent)

P Flow Service (com.ibi.agents.XDPFlowAgent)

P Flow Test Service (com.ibi.agents.XDPFlowTestAgent)

Parse to XML Service (com.ibi.agents.XDToXML)

PF File Operations Service (com.ibi.agents.XDPFFileOpsAgent)

PF File Read Service (com.ibi.agents.XDPFFileReadAgent)

PFFTP Operations Service (com.ibi.agents.XDPFFTPOpsAgent)

PFFTP Read Service (com.ibi.agents.XDPFFTPReadAgent)

Preemitter in Flow Service (com.ibi.agents.XDPreemitAgent)

Print Emit Service (com.ibi.agents.XDPrintEmitAgent)

Properties File Updater Service (com.ibi.agents.XDPropertyUpdater)

Protocol Business Services

QA Service (com.ibi.agents.XDQAAgent)

Route Service (com.ibi.agents.XDRouteAgent)

Rule Router Service (com.ibi.agents.XDRuleRouterAgent)

Run OS Shell Command Service (com.ibi.agents.XDRunCmdAgent)

Save/Restore Document Value Service (com.ibi.agents.XDSREGTreeAgent)

Save/Restore XML Tree Service (com.ibi.agents.XDSREGTreeAgent)

Set Document State (com.ibi.agents.XDDocAgent)

SFTP Emit Agent (com.ibi.agents.XDSFTPEmitAgent)

SFTP File Operations (com.ibi.agents.XDSFTPFileOpsAgent)

SFTP Read Agent (com.ibi.agents.XDSFTPReadAgent)

Snip Service (com.ibi.agents.XDSnipAgent)

Sonic Emit Service (com.ibi.agents.XDSonicEmitAgent)

Sonic Queue Browser Service (com.ibi.agents.XDSonicBrowseAgent)

Sonic Read Service (com.ibi.agents.XDSonicReadAgent)

SP Router Service (com.ibi.agents.XDSPRouter)

Split Service (com.ibi.agents.XDSplitAgent)

Split To MQ Service (com.ibi.agents.XDSplitToMQAgent)

SQL Batch Row Insert Service (com.ibi.agents.XDSQLInsert)

SQL Service (com.ibi.agents.XDSQLAgent)

SREG Service (com.ibi.agents.XDSREGAgent)

SREG Insert Service (com.ibi.agents.XDSregInsertToDocAgent)

SREG Namespace Service (com.ibi.agents.XDSREGNamespaceAgent)

SWIFT Out Report Service (com.ibi.agents.SWIFTOutReportAgent)

SWIFT Transform Service (com.ibi.agents.XDSWIFTTransformAgent)

SWIFT Validation Service (com.ibi.agents.XDSWIFTValidationReportAgent)

SWIFT XML Transform Service (com.ibi.agents.XDIWAYSWIFTXMLTransformAgent)

TCP Emit Service (com.ibi.agents.XDTCPEmitAgent)

TIBCO RV Emit Service (com.ibi.agents.XDTIBRVEmitAgent)

Trace Message Writer Service (com.ibi.agents.XDTraceAgent)

Transform Service (com.ibi.agents.XDTransformAgent)

Tree Evaluator Service (com.ibi.agents.EvalWalk)

Unmarshal Service (com.ibi.agents.XDUnmarshallAgent)

Update Correl Entry Service (com.ibi.agents.XDUpdateCorrelEntryAgent)

Web Service Client Service (com.ibi.agents.XDWSClientAgent)

X12 Validation Service (com.ibi.agents.XDX12ValidationReportAgent)

XA Log Inquiry By Context Service (com.ibi.agents.XDXALogInquiryByContextAgent)

XA Log Inquiry By Date Service (com.ibi.agents.XDXALogInquiryByDateAgent)

XA Log Inquiry By Partner Service (com.ibi.agents.XDXALogInquiryByPartnerAgent)

XA Log Inquiry By Transaction ID Service                          (com.ibi.agents.XDXALogInquiryByTIDAgent)

XA Log Message Service (com.ibi.agents.XDXALogMsg)

XML Digital Signature Create Service (com.ibi.agents.XDXMLDSigCreateAgent)

XML Digital Signature Verify Service (com.ibi.agents.XDXMLDSigVerifyAgent)

XQuery Expression Evaluation (com.ibi.agents.XDXQueryAgent)

Zip Out Service (com.ibi.agents.XDZipOutAgent)



x
Accumulate EOS Service (com.ibi.agents.XDAccumEOSAgent)

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. This is configured in the event that there is a need to merge the rows again into a single document after performing certain operations.

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.



x
Activity Log Business Error Message Service (com.ibi.agentsXDXALogBizErr)

Syntax:

com.ibi.agents.XDXALogBizErr

Description:

A business error is an error detected by a process relating to the business activity being performed. It is not a hardware or software error. Business errors can be added to the activity log by this agent.

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 process flow rolls back. To achieve transactional recording, the channel must be declared to control the local transaction.

Message

The text message to be logged.



x
Activity Log Entry Service (com.ibi.agents.XDXALogEvent)

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:

  • emit {emit}
  • security {security} (default)
  • emit {signature}
  • crypto {crypto}
  • user {user}

You can also type an arbitrary, user-defined value in the Event field that must be greater than 1000.

Code

A code that further describes the event. Select one of the following values from the drop-down list:

  • start {start} (default)
  • end {end}
  • fail {fail}
  • sign {sign}
  • encrypt {encrypt}
  • decrypt {decrypt}
  • verify {verify}

You can also type an arbitrary, user-defined value in the Code field that 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



x
Add Attachment Service (com.ibi.agents.XDAddAttachmentAgent)

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.



x
Add Attachment From File Service (com.ibi.agents.XDAddAttachmentFromFileAgent)

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.



x
Add Correl Entry Service (com.ibi.agents.XDAddCorrelEntryAgent)

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.


Top of page

x
Alt Route IP Service (com.ibi.agents.XDAltRouteIP)

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.

fail_unreachable

Neither host nor alternate can be reached.



x
AQ Emit Service (com.ibi.agents.XDAQEmitAgent)

Syntax:

com.ibi.agents.XDAQEmitAgent

Description:

This service sends a message to an Oracle AQ queue.

Parameters:

Parameter

Description

Queue Name *

Name of the input queue to be monitored.

Host

Host of the server connection.

SID *

SID of the server connection.

Port

Port to use for the server connection.

Driver *

Driver to use for the server connection.

User *

User login ID at the broker machine.

Password *

User password at the broker machine.

Table Owner/Schema *

Usually the same as the login.

Table Name

Table in which the queue resides.

Connection Type *

Connection to Oracle JMS or Oracle AQ.

  • aq
  • jms

AQ

Message Type

Select one of the following message type formats to send or create (when creating a dynamic queue on the listener):

  • clob
  • raw

Payload Class

When using custom defined objects, specify a class that is in the classpath.

Payload Object

When using custom defined objects, specify the Oracle object that the class will map to. The owner of the schema will be prepended.

Object Owner

Name of the input queue to be monitored.

RAC

RAC Hosts

Enter additional hosts for RAC failover/load balancing (host1:port, host2:port, host3:port).

RAC Load balance

Use the RAC connection for load balancing.

  • false
  • true

RAC Failover

Use the RAC connection for failover.

  • false
  • true

ONS Hosts

Hosts emitting ONS information, for example host:port, host:port.

Cache Minimum

The minimum number of connections to the queue to be held in the cache.

Cache Maximum

The maximum number of connections to the queue to be held in the cache.

Cache Initial

The initial number of connections to create in the cache.

Cache Inactive Timeout

The maximum time a cached physical connection can remain idle.

Cache Abandoned Timeout

The maximum time that a connection can remain unused before the connection is closed and returned to the cache.

Cache Maximum Statements

The maximum number of statements that a connection keeps open.

Cache Property Interval

Sets the time interval at which the cache manager inspects and enforces all specified cache properties.

JMS

Message Priority

The outgoing message priority. If no value is specified, the incoming message priority is used.

Message Type

Select one of the following message type formats to send or create (when creating a dynamic queue on the listener):

  • bytes
  • text

Set Reply Correlation ID

If set to a value, this is used as the correlation ID of the response.

Delivery Mode

Retention of a message at the destination until its receipt is acknowledged is not guaranteed by a PERSISTENT delivery mode.

JMSReplyTO

Queue or Topic (used for JNDI lookup).

Time to Live

The lifetime of a message (in milliseconds). The default is the message will live forever.

Agent Specific Parameters

Return *

Return from this agent.

  • response
  • status

Preemitter

Determines if any preemitter be avoided.

  • true
  • false

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.



x
AS 1 Emit Service (com.ibi.agents.AS1EmitAgent)

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.

Subject of Msg

Subject for messages.

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.

  • application/XML

  • application/EDIFACT

  • application/EDI-X12

Return Status *

  • status. A status document will become the output document.

  • input. Input document will become the output document.

Avoid Preemitter

Checks to see if any preemitter should be avoided.

  • true

  • false

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.

  • regular (unsigned/unencrypted)

  • smime_sign (signed only)

  • smime_encrypt (encrypted only)

  • smime_sign_encrypt (signed and encrypted)

Compression *

If checked, compression will be applied.

  • false

  • true

Request Receipt *

Tells the emitter to send a request for receipt, for example, MDN(Message Disposition Notification).

  • none

  • signed

  • unsigned

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.

  • SHA-1

  • MD5

Encrypt Algorithm *

Encryption algorithm.

  • CAST5

  • DES-EDE3

  • IDEA

  • RC2



x
AS 2 Emit Service (com.ibi.agents.AS2EmitAgent)

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.

  • application/XML

  • application/EDIFACT

  • application/EDI-X12

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.

  • encypted

  • signed

  • signed and encrypted

  • un-encrypted

Compression

If checked, compression will be applied.

  • true

  • false

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, for example, MDN(Message Disposition Notification).

  • None. No MDN Returned

  • Signed. Signed MDN Returned

  • Unsigned. Unsigned MDN Returned

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.

  • CAST5

  • DES-EDE3

  • IDEA

  • RC2

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.

  • SHA-1

  • MD5

Encryption Algorithm

Algorithm to be used for encrypting.

  • CAST5

  • DES-EDE3

  • IDEA

  • RC2

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.

  • true

  • false

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 are connecting to. If keystore is not configured in system properties, default truststore located under JRE_HOME/lib/security/cacerts will be used.

  • true

  • false

Use 128-bit Encryption

Enforces the use of 128-bit encryption.

  • true

  • false

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.

  • true

  • false

Avoid Preemitter

Check to see if any preemitter be avoided.

  • true

  • false

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.

  • true

  • false



x
AS 2 Nonblocking Emit Service (com.ibi.agents.XDNAS2EmitAgent)

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:

  • mailto:user@host. For asynchronous receipt by email.
  • http://host[:port]/. For asynchronous receipt by HTTP.
  • https://host[:port]/. For asynchronous receipt by HTTPS.

Receipt Destination

Directory into which synchronous MDNs are stored. Specific file name is optional. Use * in file name to add a timestamp and use # to add a sequential counter.

Content-Type

Specifies the content-type of data to be sent. Select from the drop-down list 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.

Domain

Domain for NTLM authentication challenges. To use NTLM, you must enable connection persistence.

Request Header Namespace

Special register namespace from which HTTP headers for the outgoing request will be taken.

  • Default Namespace. To send HDR type registers.
  • Supply a namespace prefix here to indicate which headers to send.
  • 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 for the incoming response will be saved.

  • Default Namespace. To create special registers with no namespace.
  • Supply a namespace prefix here to indicate header namespace.

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, the HTTP request entity will be compressed using the selected encoding and the Content-Encoding header will be set accordingly.

Replace Connection?

If set to false, the connection will not be returned to the connection pool immediately. The identifier of the connection will be stored in the httpclient-key special register and the connection can be handled by the HTTP Client Manager agent.

Maximum HTTP Client Manager Delay

Maximum time the HTTP Client Manager can take to address a particular connection before it is automatically aborted. The format is [xxh][xxm]xx[s]. The default is 60 seconds.

Maximum Request Size

Maximum size, after compression, of a request entity that can be sent with this emitter. 0 means no maximum and blank will default to 256KB.

Maximum Response Size

Maximum size of a response entity that can be received by this emitter. 0 means no maximum and blank will default to 256KB.

Try Expect/Continue Handshake?

If checked, client will send the HTTP Expect: 100-continue header and await the HTTP 100 response before sending the request body.

S/MIME

Packaging

Tells the emitter how the document should be packaged for transmission. Select from the drop-down list:

  • Encrypted
  • Signed
  • Signed and Encrypted
  • Un-encrypted

Compression

Determines when message compression should be applied. Select from the drop-down list:

  • Compress After Signature
  • Compress Before Signature
  • No Compression

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 list:

  • Complete Certificate Chain
  • No Certificate
  • Signer Certificate only

Enforce KeyUsage Extension

If set to 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 a response before signaling an error.

Agent Specific parameters

Return

Return from this agent. Select one of the following options from the drop-down list:

  • input
  • status
  • response

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.



x
AS 2 Nonblocking Send MDN Service (com.ibi.agents.XDMDNSendNowAgent)

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.


Top of page

x
Attachment Operations Service (com.ibi.agents.XDAttachOps)

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:

  • deleteAll (default)
  • deleteOne

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.

Although the specification of the Content-ID header requires the value to be enclosed in angle brackets, you must not use the angle brackets in this property.



x
Attachment to Document Service (com.ibi.agents.XDAttachmentToDocAgent)

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.



x
Authenticate/Impersonate Service (com.ibi.agents.XDPrincipalAgent)

Syntax:

com.ibi.agents.XDPrincipalAgent

Description:

This service allows a process to authenticate and/or impersonate a user based on credentials in a message or message context.

For more information about the Authenticate/Impersonate service, see the iWay Service Manager Security Guide.


Top of page

x
Blank Elimination Service (com.ibi.agents.XDBlankWalk)

Syntax:

com.ibi.agents.XDBlankWalk

Description:

The XML standard calls for preserving blanks in element values. As a compliant parser, the iWay Service Manager preserves these spaces as per the standard. In some cases, however, users add superfluous spaces to document element values. This often arises when an XML document is formatted to resemble a printed document and is then passed into the system.

The Blank Elimination service trims these extraneous blank spaces to make future XPATHs or analysis easier.

Parameters:

Parameter

Description

Method

Select one of the following options to remove blank spaces:

  • All. Trims leading and trailing whitespaces from all element text values. This option is selected by default.
  • Empty. Trims whitespace-only element values; does not trim other element text values.

The edges returned are listed in the following table.

Edge

Description

fail_format

The input document was not in XML format.

Example:

For example, given the following input XML document:

<root>
   <sub>   <sub2>   hello   </sub2>
   </sub>
   <sub3>![CDATA[     ]]</sub3>
</root>

When the Method parameter is set to All, the following result is generated:

<root><sub><sub2>hello</sub2></sub><sub3>![CDATA[     ]]</sub3></root>

The value of the <sub2> element was trimmed and the whitespace content of the <root> and <sub> elements was eliminated. Notice, however, that the whitespace inside the CDATA node was ignored.

When the Method parameter is set to Empty, the following result is generated:

<root><sub><sub2>   hello   </sub2></sub><sub3>![CDATA[     ]]</sub3></root>

The document is treated just as above, except that in this case, the value of the <sub2> element is not trimmed.



x
Base64 Operation Service (com.ibi.agents.XDBase64Agent)

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 image 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.



x
C Char Filter Service (com.ibi.agents.CCharFilter)

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>


x
Catch Service (com.bi.agents.XDCatchAgent)

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:

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 programming 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:

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 three selected cases (onError, onFailure, and error_retry). Any errors or failures that occur within the path of the process flow are directed down the onError and onFailure edge. The logic in this branch contains any services necessary to handle errors. The error_retry edge is followed when there is a retry exception. For example, when a SQL Object contains an invalid URL in the process flow, the onCustom/error_retry edge will be followed.

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 email 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.


Top of page

x
Channel Information Service (com.ibi.agents.XDChanInfoAgent)

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.

  • Begin. Channel has been started, but has not yet completed the initialization.
  • Config. Errors were found during the initialization and the channel cannot start.
  • Retry. The channel initialization (or sometimes the execution phase) found a condition that is an error not related to the configuration. The channel can be automatically restarted at a later time.

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>


x
Check Schema Service (com.ibi.agents.CheckSchema)

Syntax:

com.ibi.agents.CheckSchema

Note: The CheckSchema service has been deprecated. Use the XDCheckSchema service instead.

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

The path to the schema file.

Fail on error *

If fail, schema errors will cause failures. Mark sets bad document.

The edges returned are listed in the following table.

Edge

Description

badschema

The schema fails the schema check.

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.



x
Check Schema Service (com.ibi.agents.XDCheckSchema)

Syntax:

com.ibi.agents.XDCheckSchema

Description:

The XDCheckSchema service evaluates an input document against a specified schema. In scenarios where a schema represents an agreement between the sender of a document and the receiver (for example, iWay Service Manager), schema checking is important for debugging purposes. It has lesser importance during actual production. However, this is ultimately an application design decision.

Note: Checking a schema can consume system resources and processing time. As a result, it is not recommended during operation in production environments.

Parameters:

Parameter

Description

Schema File

The source of the schema to be applied to the incoming document. You can specify a file path directly in this field, or select one of the following values from the drop-down list:

  • route {$route}. A schema published to the selected route that is currently managing the channel.
  • start node {$start}. A schema specified on the Start object of the process flow.

Schema Name

If the schema is packaged in a .zip archive file, which is specified in the Schema File field, then the name of the schema file (for example, xyz.xsd) must be provided.

Strictness *

Determines the level of schema testing that should be applied. Select one of the following values from the drop-down list:

  • strict (default). The document must validate. Failure to validate results in a fail_parse result.
  • optional. If the schema is located, then the document must validate. If the schema cannot be located, then the document validation is ignored.

The following table lists and describes the edges that are returned by the XDCheckSchema service.

Edge

Description

success

Successful.

fail_parse

The schema could not be parsed or the document failed the schema check.

fail_missingschema

The schema could not be found.

fail_format

The format of the input document was not compatible (for example, not in XML format).

Example:

In this example, an absolute path to a schema is specified for the Schema File property.

Instead of providing an absolute path to the schema, you can also specify the location of a .zip archive file where the schema is packaged. In this case, you must also provide a value for the Schema Name property, which will direct this service to the root schema in the .zip archive file. For example:

You can also select route or start node from the Schema File drop-down list. If route is selected, then the schema is retrieved from the route that is currently managing the channel. If start node is selected, then the schema is retrieved from the process flow Start object, as shown in the following image.

When the process flow is executed, the input file is validated against the specified schema and an appropriate output document is generated.



x
Commit or Rollback within a Flow (com.ibi.agents.XDCommitAgent)

Syntax:

com.ibi.agents.XDCommittAgent

Description:

Like the XDCatchAgent, this service serves as a placeholder for a process flow function. Unless the Supports Local Transaction attribute is set in the listener of the channel, this node is a functional NOP.

When operating in Local Transaction mode, database and other operations begun by nodes within the flow are committed or rolled back based on the final status of the flow itself. The commit or rollback is performed within the constraints of the local transaction capability of the server.

The XDCommitAgent, when encountered in a flow, causes a commit or a rollback operation to take place immediately. This allows two or more transactions in a single flow. Use of this capability is dependent on application design.

The agent is configured for commit or rollback. This is not possible using iFL.

When encountered, the commit handler awaits completion of all other threads in the flow, if any. It then calls the commit manager to commit or roll back work established to date. This in turn causes all open connections to be released. The specific action on a commit or roll back is dependent on the resource being affected. Note that mis-specification of set or synch waits can cause the flow to enter a deadlock condition.

Once committed, the data cannot be rolled back regardless of the manner in which the flow actually ends. The node is a punctuation within the flow, and users should consider actions subsequent to the commit/rollback as a separate flow.

A common use of such a capability is with a catch node. If catch traps an error, the error edge might issue a roll back and then proceed to take other action to record or recover from the error.

Edges:

Edges

Description

success

The operation completed.

fail_operation

An error was reported in attempting to commit or roll back the transaction.

Parameters:



x
Constant Service (com.ibi.agents.XDConstantAgent)

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:

  • xml (default). This value emits a valid XML output.
  • flat This value emits output as flat text.

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:

  • always (default). Emits the constant regardless of the input document's format.
  • xmlonly. If the input document is XML, emit the constant, otherwise emit the original input document.
  • flatonly. If the input document is flat, emit the constant, otherwise emit the original input 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.

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>


x
Control Activity Log Exit Service (com.ibi.agents.XDXalogControlAgent)

Syntax:

com.ibi.agents.XDXalogControlAgent

Description:

Activity log exits accept messages pertaining to activities in the server, and report these activities to some external media. A common exit is the BAMActivityProvider. Other exits relate to SNMP, time tracking, and so on. The exits are defined and deployed for the configuration, and may initially be defined as being in an active or inactive state. Active state refers, as in all components, to whether the exit is initialized and started automatically when the server is initialized.

These exits can be configured for the server in the Activity Facility section of the iSM Administration Console.

This service can be used in a process flow to start or stop the named activity log exit. You might use this, for example, in a BAM error recovery flow to restart the exit that has been stopped due to a database error.

Parameters:

Parameter

Description

Exit

The name of the Activity Facility exit to be controlled. This exit must be available.

Action

Determines the action to be taken. Select one of the following actions from the drop-down list:

  • start
  • stop

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.

Edges:

The edges returned by the Control Activity Log Exit service (com.ibi.agents.XDXalogControlAgent) are listed and described in the following table.

Edge

Description

success

The requested action has been initiated. The operation of the server is generally asynchronous, so this only means that the start activity has been initiated.

fail_parse

The configuration parameters can not be understood.

fail_notfound

The named exit can not be located in the set of deployed exits.

fail_operation

The requested action failed for some other reason.



x
Controls Channel Service (com.ibi.agents.XDControlAgent)

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:

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 a comma-separated list.

Action

Select one of the following actions from the drop-down list:

  • start
  • pause
  • pulse
  • stop

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.



x
Correl Inquiry Service (com.ibi.agents.XDCorrelInquiryAgent)

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.



x
Correl Inquiry By State Service (com.ibi.agents.XDCorrelInquiryByStateAgent)

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.



x
Correl Set Inquiry Service (com.ibi.agents.XDCorrelSetInquiryAgent)

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.



x
Deflate Service (com.ibi.agents.XDDeflateAgent)

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:

  • none (default). No compression is used.
  • smallest. The smallest possible output, regardless of the execution time.
  • fastest. The fastest possible execution time, even if the degree of deflation is reduced.
  • standard. A compromise between smallest and fastest is used.
  • Huffman. An entropic encoding scheme is applied.

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.



x
Document Update Service (com.ibi.agents.XDDocUpdateAgent)

Syntax:

com.ibi.agents.XDDocUpdateAgent

Description:

The Document Update service can be used to run find and replace procedures, and modify data based on static or dynamic parameters.

Note: This service requires a highly technical method to achieve the desired result. The same functionality can be performed through the use of a configured Transform component, which can be called by a Transform service. For more information, see Transform Service (com.ibi.agents.XDTransformAgent).

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:

  • Process to Flat text. Treats the incoming and outgoing data as flat text.
  • Process to XML. Parses the document as XML.

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 then Build Document. Performs a find/replace operation then parses the document.
  • Build Document then Find/Replace. Parses the document then performs a find/replace operation.
  • Only Find/Replace. Performs a find/replace operation only.
  • Only Build Document. Parses the document as XML or flat (no replace is performed).

Document Assembly Instructions

A comma-separated field used to describe how the document is assembled. The build text is evaluated from left to right; iFL functions (for example, _SREG and _CONCAT) are evaluated at document build time. The following special text values are also used:

DS0 - document at time of build, DS#

where:

#

Represents one of the four data sources.

DS1

Data source 1, which is evaluated when the component is called. This field may contain any iFL functions (for example, _SREG and _CONCAT) and text. This field is represented in the Document Assembly Instructions parameter as DS1.

DS2

Data source 2, which is evaluated when the component is called. This field may contain any iFL functions (for example, _SREG and _CONCAT) and text. This field is represented in the Document Assembly Instructions parameter as DS2.

DS3

Data source 3, which is evaluated when the component is called. This field may contain any iFL functions (for example, _SREG and _CONCAT) and text. This field is represented in the Document Assembly Instructions parameter as DS3.

DS4

Data source 4, which is evaluated when the component is called. This field may contain any iFL functions (for example, _SREG and _CONCAT) and text. This field is represented in the Document Assembly Instructions parameter as DS4.

Find/Replace

Search

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.

Note: As of iWay Service Manager Version 5.6, 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.

The following image shows the New Service Object dialog in iWay Designer and the corresponding parameters that displays when you add a new Document Update service object to a process flow.

The edges returned are listed in the following table.

Edge

Description

EX_SUCCESS

The service generated a successful output. Either a flat document was generated by the service (if Process to Flat text was selected), or a well formed XML document (if Process to XML was selected).

EX_FAIL_PARSE

Returned by the service if any of the following fields contain an invalid iFL statement:

  • Document Assembly Instructions
  • DS1
  • DS2
  • DS3
  • DS4
  • Search
  • Replace

If Process to XML was selected and the document created is not a well formed XML document.

EX_FAIL_OPERATION

An unexpected error occurred while processing the document or the parameters of the service. Check the iSM logs for further details.



x
Example 1: Find/Replace Then Build Document

This example performs a Find/Replace operation then parses the document. In this example, DS0, DS1, DS2, DS3, and DS4 are used to append the text this is a bill to the end of the document (DS0 represents the input document of the service). Because the Find/Replace operation is performed prior to compiling the output document, the second occurrence of bill is not replaced with buster.

Document:

<Test>joe bill mike<Test>

Parameters:

Parameter

Value

Document Output

Process to Flat text

Processing Method

Find/Replace then Build Document

Document Assembly Instructions

ds0,ds1,ds2,ds3,ds4

DS1

_concat(this,' ')

DS2

_concat(is,' ')

DS3

_concat(a,' ')

DS4

bill

Search

bill

Replace

buster

Encoding

UTF-8

Results:

<Test>joe buster mike<Test>this is a bill


x
Example 2: Build Document Then Find/Replace

This example parses the document then performs a Find/Replace operation. In this example, DS0, DS1, DS2, DS3, and DS4 are used to append the text this is a bill to the end of the document (DS0 represents the input document of the service). Because the Find/Replace operation is performed after compiling the output document, the second occurrence of bill is replaced with buster.

Document:

<Test>joe bill mike<Test>

Parameters:

Parameter

Value

Document Output

Process to Flat text

Processing Method

Build Document then Find/Replace

Document Assembly Instructions

ds0,ds1,ds2,ds3,ds4

DS1

_concat(this,' ')

DS2

_concat(is,' ')

DS3

_concat(a,' ')

DS4

bill

Search

bill

Replace

buster

Encoding

UTF-8

Results:

<Test>joe buster mike<Test>this is a buster


x
Example 3: Only Find/Replace

This example only performs a Find/Replace operation. In this case, only the document presented to the service is searched and any occurrence of bill is replaced with buster.

Document:

<Test>joe bill mike<Test>

Parameters:

Parameter

Value

Document Output

Process to Flat text

Processing Method

Only Find/Replace

Document Assembly Instructions

DS1

_concat(this,' ')

DS2

_concat(is,' ')

DS3

_concat(a,' ')

DS4

bill

Search

bill

Replace

buster

Encoding

UTF-8

Results:

<Test>joe buster mike<Test>


x
Example 4: Only Build Document

This example parses the document as XML or flat (no replace is performed). The assembly instructions indicate that DS1, DS2, DS3, and DS4 are used to create the document that the service will output. There will be no replacements performed by the service.

Document:

<Test>joe bill mike<Test>

Parameters:

Parameter

Value

Document Output

Process to Flat text

Processing Method

Only Build Document

Document Assembly Instructions

ds1,ds2,ds3,ds4

DS1

_concat(this,' ')

DS2

_concat(is,' ')

DS3

_concat(a,' ')

DS4

bill

Search

bill

Replace

buster

Encoding

UTF-8

Results:

this is a bill

The assumption for the the examples to follow is that the iSM SREG called xmlrecord is set to:

<root><Joe>QA</Joe>


x
Example 5: Find/Replace Then Build Document

This example performs a Find/Replace operation then parses the document. In this example, the iSM iFL function _SREG and DS0 (the document presented to the service) are used in the document assembly process. Because the Find/Replace operation is performed prior to compiling the output document, only the second occurrence of QA is replaced with Quality Assurance.

Document:

<Michael>QA</Michael></root>

Parameters:

Parameter

Value

Document Output

Process to XML

Processing Method

Find/Replace then Build Document

Document Assembly Instructions

_sreg(xmlrecord),DS0

DS1

DS2

DS3

DS4

Search

QA

Replace

Quality Assurance

Encoding

UTF-8

Results:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<root>
    <Joe>QA</Joe>
    <Michael>Quality Assurance</Michael>
</root>


x
Example 6: Build Document Then Find/Replace

This example parses the document then performs a Find/Replace operation. In this example, the iSM iFL function _SREG and DS0 (the document presented to the service) are used in the document assembly process. Because the Find/Replace operation is performed after compiling the output document, both occurrences of QA are replaced with Quality Assurance.

Document:

<Michael>QA</Michael></root>

Parameters:

Parameter

Value

Document Output

Process to XML

Processing Method

Build Document then Find/Replace

Document Assembly Instructions

_sreg(xmlrecord),DS0

DS1

DS2

DS3

DS4

Search

QA

Replace

Quality Assurance

Encoding

UTF-8

Results:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<root>
    <Joe>Quality Assurance</Joe>
    <Michael>Quality Assurance</Michael>
</root>


x
Example 7: Only Find/Replace

This example only performs a Find/Replace operation. In this case, only the document that is presented to the service is searched and any occurrence of QA is replaced with Quality Assurance.

Document:

<Michael>QA</Michael>

Parameters:

Parameter

Value

Document Output

Process to XML

Processing Method

Only Find/Replace

Document Assembly Instructions

DS1

DS2

DS3

DS4

Search

QA

Replace

Quality Assurance

Encoding

UTF-8

Results:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<Michael>Quality Assurance</Michael>


x
Example 8: Only Build Document

This example parses the document as XML or flat (no replace is performed). In this example, the iSM iFL function _SREG and DS0 (the document presented to the service) are used in the document assembly process. There will be no replacements performed by the service.

Document:

<Michael>QA</Michael></root>

Parameters:

Parameter

Value

Document Output

Process to XML

Processing Method

Only Build Document

Document Assembly Instructions

_sreg(xmlrecord),DS0

DS1

DS2

DS3

DS4

Search

QA

Replace

Quality Assurance

Encoding

UTF-8

Results:

<?xml version="1.0" encoding="ISO-8859-1"  ?>
<root>
    <Joe>QA</Joe>
    <Michael>QA</Michael>
</root>


x
Document Copy Service (com.ibi.agents.XDCopyAgent)

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 />

Top of page

x
Document to Attachment Service (com.ibi.agents.XDAttachmentFromDocAgent)

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:

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:

  • keep (default)
  • empty


x
Email Emit Service (com.ibi.agents.XDEmailEmitAgent)

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 email (add :port for non-standard port).

To *

Message recipient as an email address. Use a semicolon (;) 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 a semicolon (;) to delimit multiple addresses.

Blind Copy To

Blind Carbon copy recipient of this email. Use a semicolon (;) to delimit multiple addresses.

Reply-to

Address to replyto for this email. Use semicolon (;) 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:

  • status. Status document will become the output document.
  • input. Input document will become the output document

Security Protocol

Select one of the following options from the drop-down list:

  • none - Clear SMTP connection.
  • SSLv2 - SMTPS - Connect to secure SMTP server.
  • STARTTLS - Connect to an unsecured SMTP server, then negotiate SSL/TLS connection.

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>


x
Entag Service (com.ibi.agents.XDEntagAgent)

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 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>


x
Execute ETL Service (com.ibi.agents.XDETLAgent)

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:

  • Status
  • Original Input
  • Statistics

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.



x
Fail Service (com.ibi.agents.XDFailAgent)

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:

  • fail
  • retry

Message

Message to be issued to the user.

Bypass Error Message

Indicates not to trace at the error level when this service terminates the process. This is useful for cases where the trace log is being monitored by an external program for errors. The termination will be traced at the debug level.

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>

Otherwise, a retry is silent and the incoming message is retried later.

If the fail option is selected for the Type of failure parameter, the process flow handles the termination as an error condition by searching upward on the execution edge to locate a catch node. If none is found, then the process flow is terminated. If a catch node is found, then standard catch logic is performed.

It is not recommended to design process flows in which failure indications are used to control execution logic (for example, simulating a long jump). Failure indications should only be used in the event of actual failures.



x
File Accumulator Service (com.ibi.agents.XDFileAccumAgent)

Syntax:

com.ibi.agents.XDFileAccumAgent

Description:

The file accumulator service adds records to a file for the duration of the local transaction. By storing the output links to the file system, this service is able to achieve a level of high performance when a significant amount of data is being written to the file.

The service can only function in a local transaction situation. For example, the channel is designated as a local transaction channel. The first record to reach the accumulator in the process flow opens the file and prepares for operation. Subsequent entries to the service continue to write to the same file. A common case is either a streaming preparser or an iterator that presents multiple records to the accumulator.

The full path to the file created for the accumulation is available after each execution of this service in the emit.file.accum.filename special register.

Parameters:

Parameter

Description

Source of Data

Determines how the data is located. If this parameter is omitted, the content of the current input document is used.

Target Directory

Directory to which the file is written.

File Pattern

Standard iWay file pattern. If the file exists when the agent begins the operation, the new data is appended to the existing file.

Return

Determines what is placed on the outgoing document. Can be status (status document) or input (input document).

Base64 Decode

If set to true, the incoming value is presumed to be in the Base64 encoding. By default, this parameter is set to false.

Append CRLF

If set to true, a line termination sequence is written after the 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 edges returned are listed in the following table:

Edge

Description

success

The item was added to the file. If the file did not exist, it was created.

fail_operation

Write could not be completed.

fail_parse

The configuration could not be performed. Often this is generated by an invalid iFL statement.

fail_notfound

The file to be written could not be located. This may be a path issue.



x
File Directory Contents Service (com.ibi.agents.XDFileDirListAgent)

Syntax:

com.ibi.agents.XDFileDirListAgent

Description:

This service lists the contents of a file directory that is accessible through the file system. You may select to view files, subdirectories, or both.

Parameters:

Parameter

Description

Directory

The directory to be listed. This service does not descend directories.

Include

Determines what items should be included in the listing. Select one of the following options from the drop-down list:

  • Files (default)
  • Subdirectories
  • All

Selection Expression

If present, this is a Java regular expression used for selection of the file or subdirectory. For example, to select only .xml files, you might use ".*\.xml" as the pattern (the quotes are not included in the pattern) .

Note: The expression, .*\.xml is deconstructed as follows. The leading dot means any character, and the asterisk means any number of them, until a suffix of .xml is reached. The problem with the .xml is that the dot would mean any character, so it is escaped. Because this is not iFL syntax, the backslash does not need to be escaped.

Pattern Type

If the Selection Expression is supplied, indicate whether it should be interpreted as a regular expression (regex) or a DOS style wildcard (wildcard).

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 resulting document contains information on each entry in the directory.

Entry

Description

type

Identifies whether this is a file or a directory entry.

lastmod

An integer value of the time the file was last modified. This is the last-modified time, measured in milliseconds since the epoch (00:00:00 GMT, January 1, 1970).

lastmodstr

The last modified time as a string.

The following is an example of a generated document:

<dir base="c:\iway60" count="9">
   <item type="directory" lastmod="1254257984133" lastmodstr="29 Sep 2009 20:59:44 GMT">bin</item>
   <item type="directory" lastmod="1256932227299" lastmodstr="30 Oct 2009 19:50:27 GMT">config</item>
   <item type="directory" lastmod="1254257982321" lastmodstr="29 Sep 2009 20:59:42 GMT">etc</item>
   <item type="file" lastmod="1256738729576" lastmodstr="28 Oct 2009 14:05:29 GMT">failagent_repro.zip</item>
   <item type="file" lastmod="1254256456000" lastmodstr="29 Sep 2009 20:34:16 GMT">iway60.cmd</item>
   <item type="directory" lastmod="1254846509643" lastmodstr="6 Oct 2009 16:28:29 GMT">lib</item>
   <item type="file" lastmod="1254258028321" lastmodstr="29 Sep 2009 21:00:28 GMT">license.xml</item>
   <item type="directory" lastmod="1254257973414" lastmodstr="29 Sep 2009 20:59:33 GMT">tools</item>
   <item type="file" lastmod="1254257983852" lastmodstr="29 Sep 2009 20:59:43 GMT">uninstall.exe</item>
</dir>

The edges returned are listed in the following table.

Edge

Description

success

The directory document was produced.

fail_notfound

The directory to be listed was not found

fail_operation

The directory to be listed was not reachable. This can come about if a relative directory cannot be resolved or the directory was not specified.



x
File Emit Service (com.ibi.agents.XDFileEmitAgent)

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 the xpath() function 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

Determines the source of data to emit. If you require a document to be emitted, then enter the corresponding system path for this document. If no value is specified, then the current document is used by default. You can also specify an iWay expression, including the xpath() function to specify a data source location (for example, if an XML document is used).

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:

  • true (default)
  • false

Return

Select one of the following options from the drop-down list:

  • status (default). Status document will be the output document.
  • input. Input document will become the output document.
  • swap. As input, but replace written data in the source nodes with the file name to which the data was written.

Base64 Decode

If set, the value is assumed to be in base64 notation. Only applicable if a specific write value is specified. Select one of the following options from the drop-down list:

  • true
  • false (default)

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:

  • true
  • false (default)

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 return document of the process flow 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>


x
File Read Service (com.ibi.agents.XDFileReadAgent)

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:

  • flat (default)
  • XML

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:

  • true (default)
  • false

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.



x
FTP Connection Cache Service (com.ibi.agents.XDFTPConnectionCacheAgent)

Syntax:

com.ibi.agents.XDFTPConnectionCacheAgent

Description:

The FTP Connection Cache service starts or stops FTP server connection caching.

If the Connection caching parameter for this service is set to start using the host parameters configured by the user, the service connects to a FTP server and caches the connection. Subsequent FTP services on the same edge will check for the cached connection, and if their host parameters matche the host parameters of the cached connection, then the FTP services will use the cached connection instead of making a separate connection to the FTP server. For the FTP services using a connection cache, the connection that is returned from the cache points to the root directory of the user, just like a fresh connection that would be made to the server.

If the Connection caching parameter is set to stop, the cached connection for the service is terminated (using the FTP QUIT command) and the pool is deleted from iSM connection pool.

Note: If the Connection caching parameter for this service is set to stop, and there has not been a Connection caching pool established, then an exception is generated when the service attempts to execute.

Parameters:

Parameter

Description

Host Parameters

Host Name

In this field, enter the DNS name (or IP address) of the FTP server that you want to connect to. Use the host port if the standard port is not 21.

Remote Port

This is the port to connect to on the FTP site. Leave it blank for default port 21.

User Name

Name used as the valid user ID on the FTP server.

Password

The valid password for the FTP server.

Account Name

The valid account for the FTP server.

Use Passive Command

If set to true, the service will use a PASV command. Otherwise, it uses the PORT command.

Timeout

Timeout interval for socket in seconds.

Retry Interval

Retry interval in seconds (allows xxhxxmxxs format). You can omit or use 0 for no retry.

Connection Retry

This shows the number of attempted failed connections to the FTP server.

Service Parameters

Connection caching

If set to start, the FTP connection referenced by this service is cached until it is stopped. If set to stop, the cached connection is closed.

SSL Parameters

Use SSL

If set to true, the connection is secured using Secure Sockets Layer (SSL).

Security Protocol

This shows the type of security protocol to be used. Choose one of the following options:

  • SSL. This protocol supports some versions of SSL, and may also support other versions.
  • SSLv2. This protocol supports SSL version 2 or higher.
  • SSLv3. This protocol supports SSL version 3, and may support other versions.
  • TLS. This protocol supports some versions of TLS, and may also support other versions.
  • TLSv1. This protocol supports TLS version 1, and may support other versions.

This field is not needed if Keystore is a SSL Provider.

Secure Data Connection

This is used to enable a secure data connection, for example. transfer data securely. It is used in conjunction with Secure Control Connection.

Use 128-bit Encryption

This parameter enforces the use of 128-bit encryption.

SSL Security

This parameter describes the FTP Server connection type. Choose one of the following options:

  • unknown. This setting defaults to Explicit Security then fails over to Implicit Security.
  • explicit. In order to establish the SSL link, explicit security requires that the FTP client issue a specific command to the FTP server after establishing a connection. The default FTP server port is used.
  • implicit. Implicit security automatically begins with an SSL connection as soon as the FTP client connects to an FTP server. In implicit security, the FTP server defines a specific port for the client (typically 990) to be used for secure connections.

Keystore File or Keystore Security Provider

In this field, you can:

  • Enter the full path to the Keystore file, which provides certificate material to be used for SSL connection.
  • Name the Keystore Security Provider.
  • Use the configured default Keystore Security Provider by leaving it blank.

Keystore Password

This field is used to enter the password to access Keystore file. This is not required if Keystore File or Keystore Security Provider is the name of a Keystore Security Provider.

Keystore Type

This field shows the type of the Keystore. It is not needed if Keystore File or Keystore Security Provider is the name of a Keystore Security Provider.

Example:

The following image shows a process flow that utilizes the FTP connection caching.

In this process flow, the edge that comes from the Start object is split into two parallel concurrently executing threads, the upper thread (Thread1) and the lower thread (Thread2).

Thread 1

  1. Thread1 calls the XDFTPConnectionCacheAgent service. The Connection caching parameter is set to start so the connection that is established by the service using the Host Parameters is placed into a cache accessible to Thread1 only.
  2. The XDFTPDirListAgent is called on a successful connection. If the XDFTPDirListAgent Host Parameters are the same as the connection cache established by XDFTPConnectionCacheAgent, the cached connection is returned and used by the XDFTPDirListAgent. When the service is completed with the connection, the connection is returned to the cache to be used by another FTP service.
  3. The XDIterXMLSplit (Get File) is used to parse the directory list into separate smaller XML documents that are passed on to the XDPFFTPReadAgent (Read FTP File) and processed.
  4. The XDPFFTPReadAgent (Read FTP File) is called by the XDIterXMLSplit (Get File) iterator. If XDPFFTPReadAgent Host Parameters are the same as the connection cache established by XDFTPConnectionCacheAgent, the cached connection is returned and used by the XDPFFTPReadAgent. When the service is completed with the connection, the connection is returned to the cache to be used by another FTP service.
  5. The XDFileEmitAgent (Write File) is called to write the file read buy the XDPFFTPReadAgent service.
  6. The XDMove (Loop) object causes Steps 3 through 5 to be repeated as often as necessary until all entries in the document returned in Step 2 (XDFTPDirListAgent) have been parsed and processed.
  7. When all entries have been processed, the XDFTPConnectionCacheAgent service is called again, but this time the Connection caching parameter is set to start, so the cached connection is terminated with the FTP QUIT command and the connection cache of the thread is cleared.

Thread2

Thread2 is identical in processing to Thread1. The only difference is that each of the FTP services of Thread2 connects to the FTP server, performs their designated function, and then disconnects.



x
FTP Directory List Service (com.ibi.agents.XDFTPDirListAgent)

Syntax:

com.ibi.agents.XDFTPDirListAgent

Description:

The FTP Directory List service is used to generate an XML document listing the contents of a FTP directory specified by the user in the Directory parameter. The XML document that is generated follows the following pattern:

<dir base="Directory" count="number">
  <item type="Item Type">Name</item>
 </dir>

The content of the document differs based on the Include parameter configured by the user. If the user selects Files, the item element will contain only file names from the directory. If Subdirectories is selected, then only the subdirectory names contained in the Directory are included. If All is selected, then both file and subdirectory names are included.

Output:

The XML document generated by the service contains only two elements, dir and item.

The element dir is the root element and contains two attributes, name and count. The name attribute contains the directory entry that was configured by the user. The count attribute contains the number of item elements to follow.

The item element is the only child of the dir element, but can have multiple item siblings. The item element has only one attribute called type. The type attribute identifies the type of name that this item element contains. If the type is file, then this item element contains a name of a file. If the type is directory, then this item element contains a name of a sub-directory.

Parameters:

Parameter

Description

Host Parameters

Host Name

In this field, enter the DNS name (or IP address) of the FTP server that you wish to connect to. Use the host port if the standard port is not 21.

Remote Port

Enter the port to connect to on the FTP site. Leave it blank for default port 21.

User Name

Enter the name to be used as the valid user ID on the FTP server.

Password

The valid password for the FTP server.

Account Name

The valid account for the FTP server.

Use Passive Command

If set to true, the service uses a PASV command. Otherwise, it uses the PORT command.

Timeout

Timeout interval for socket in seconds.

Retry Interval

Retry interval in seconds (allows xxhxxmxxs format). You can omit or use 0 for no retry.

Connection Retry

This shows the number of attempted failed connections to the FTP server.

Service Parameters

Directory

This field determines what directory should be listed. This directory must exist.

Include

This parameter determines what items should be included in the listing. Choose one of the following options:

  • Files. If selected, only file names are included.
  • Subdirectories. If selected, only subdirectory names are included.
  • All. If selected, both files and subdirectories are included.

Selection Expression

Regular expression used to select files and directories.

Pattern Type

If the Selection Expression is supplied, indicate whether it should be interpreted as a regular expression or a DOS-style wildcard.

  • Regular Expression. Java based Regular Expression syntax.
  • DOS-style Wildcard. DOS-style wild card syntax:
    • (?) Any single number or character.
    • (*) Any combination of numbers and characters.

Call at EOS

When using a streaming preparser in a channel, a last call is made after the last document. Select this parameter if you want this service exit to be called.

SSL Parameters

Use SSL

If set to true, the connection is secured using Secure Sockets Layer (SSL).

Security Protocol

This shows the type of security protocol to be used. Choose one of the following options:

  • SSL. This protocol supports some versions of SSL, and may also support other versions.
  • SSLv2. This protocol supports SSL version 2 or higher.
  • SSLv3. This protocol supports SSL version 3, and may support other versions.
  • TLS. This protocol supports some versions of TLS, and may also support other versions.
  • TLSv1. This protocol supports TLS version 1, and may support other versions.

This field is not needed if Keystore is a SSL Provider.

Secure Data Connection

This is used to enable a secure data connection, for example. transfer data securely. It is used in conjunction with Secure Control Connection.

Use 128-bit Encryption

This parameter enforces the use of 128-bit encryption.

SSL Security

This parameter describes the FTP Server connection type. Choose one of the following options:

  • unknown. This setting defaults to Explicit Security then fails over to Implicit Security.
  • explicit. In order to establish the SSL link, explicit security requires that the FTP client issue a specific command to the FTP server after establishing a connection. The default FTP server port is used.
  • implicit. Implicit security automatically begins with an SSL connection as soon as the FTP client connects to an FTP server. In implicit security, the FTP server defines a specific port for the client (typically 990) to be used for secure connections.

Keystore File or Keystore Security Provider

In this field, you can:

  • Enter the full path to the Keystore file, which provides certificate material to be used for SSL connection.
  • Name the Keystore Security Provider.
  • Use the configured default Keystore Security Provider by leaving it blank.

Keystore Password

This field is used to enter the password to access Keystore file. This is not required if Keystore File or Keystore Security Provider is the name of a Keystore Security Provider.

Keystore Type

This field shows the type of the Keystore. It is not needed if Keystore File or Keystore Security Provider is the name of a Keystore Security Provider.



x
FTP Emit Service (com.ibi.agents.XDFTPEmitAgent)

Syntax:

com.ibi.agents.XDFTPEmitAgent

Description:

The FTP Emit Service transfers data from iSM to a FTP server.

Parameters:

Parameter

Description

Host Parameters

Host Name

In this field, enter the DNS name (or IP address) of the FTP server that you wish to connect to. Use the host port if the standard port is not 21.

Remote Port

This is the port to connect to on the FTP site. Leave it blank for default port 21.

User Name

Name used as the valid user ID on the FTP server.

Password

The valid password for the FTP server.

Account Name

The valid account for the FTP server.

Use Passive Command

If set to true, the service uses a PASV command. Otherwise, it uses the PORT command.

Timeout

Timeout interval for socket in seconds.

Retry Interval

Retry interval in seconds (allows xxhxxmxxs format). You can omit or use 0 for no retry.

Connection Retry

This shows the number of attempted failed connections to the FTP server.

Service Parameters

Input Source

Input from the document (default) or from an external source (MFT use).

Input Expression

If the input source is external, specify the file name here.

Remote Site Folder

Folder or directory on the FTP site that you want to use as a starting location when you connect. If you leave it blank, the login directory is used.

File Pattern

This shows the output file pattern (* = timestamp). For example, (*.xml, *.txt, and so on).

Note: *.* is unsupported.

Behavior When Target File Exists

Action to be performed if the file exists on the FTP server. Select one of the following options:

  • overwrite. The existing file on the server will be replaced with input.
  • append. Input will be added to the end of the existing file.
  • resume. If server supports REST and SIZE commands, iSM will determine the size of the file on the server using the SIZE command, and then send the REST command with the current file size. The input data is then sent starting at this position. The resume option is only supported for binary mode transfers.
  • fail. Generate a failure document and exit.

Quote Command

The entered command is sent as typed, before any data transfer.

Transfer Mode

This mode is a form of FTP Transmission. Choose one of the following options:

  • ascii. The input is sent as text to the FTP server. The data received by the server is translated into text based on the code page configuration of the server.
  • binary. The input is sent as a binary block to the server. No text translation is performed on the server.

Put File Protection

Determines whether the PUT is protected by a rename of a temporary file name. Choose one of the following options:

  • true. If set to true, the file is written to a temporary file name. When the transfer of data is complete, the temporary file on the server is renamed to the final file name
  • false. If set to false, the existing file contents (if applicable) are directly replaced with the input data.

Return

Select what the service returns when execution completes.

  • status. A status document will be the out document. This document reflects the status of the transfer to the FTP server
  • input. The input document becomes the out document.

SSL Parameters

Use SSL

If set to true, the connection is secured using Secure Sockets Layer (SSL).

Security Protocol

This shows the type of security protocol to be used. The following list describes the options of the security protocol.

  • SSL. This protocol supports some versions of SSL, and may also support other versions.
  • SSLv2. This protocol supports SSL version 2 or higher.
  • SSLv3. This protocol supports SSL version 3, and may support other versions.
  • TLS. This protocol supports some versions of TLS, and may also support other versions.
  • TLSv1. This protocol supports TLS version 1, and may support other versions.

This field is not needed if Keystore is a SSL Provider.

Secure Data Connection

This is used to enable a secure data connection, for example. transfer data securely. It is used in conjunction with Secure Control Connection.

Use 128-bit Encryption

This parameter enforces the use of 128-bit encryption.

SSL Security

This parameter describes the FTP Server connection type. Select one of the following options:

  • unknown. This setting defaults to Explicit Security then fails over to Implicit Security.
  • explicit. In order to establish the SSL link, explicit security requires that the FTP client issue a specific command to the FTP server after establishing a connection. The default FTP server port is used.
  • implicit. Implicit security automatically begins with an SSL connection as soon as the FTP client connects to an FTP server. In implicit security, the FTP server defines a specific port for the client (typically 990) to be used for secure connections.

Keystore File or Keystore Security Provider

In this field, you can:

  • Enter the full path to the Keystore file, which provides certificate material to be used for SSL connection.
  • Name the Keystore Security Provider.
  • Use the configured default Keystore Security Provider by leaving it blank.

Keystore Password

This field is used to enter the password to access Keystore file. This is not required if Keystore File or Keystore Security Provider is the name of a Keystore Security Provider.

Keystore Type

This field shows the type of the Keystore. It is not needed if Keystore File or Keystore Security Provider is the name of a Keystore Security Provider.

SITE

Starting SITE command

The SITE command to issue before the transfer of data.

Successful SITE command

The SITE command to issue after the successful transfer of data.

Error SITE Command

The SITE command to issue if the transfer of data fails.



x
FTP File Operations Service (com.ibi.agents.XDFTPFileOpsAgent)

Syntax:

com.ibi.agents.XDFTPFileOpsAgent

Description:

The FTP File Operations service is used to perform operations on the FTP server based on parameters provided by an XML input document.

Parameters:

Parameter

Description

Host Parameters

Host Name

In this field, enter the DNS name (or IP address) of the FTP server that you wish to connect to. Use the host port if the standard port is not 21.

Remote Port

This is the port to connect to on the FTP site. Leave it blank for default port 21.

User Name

Name used as the valid user ID on the FTP server.

Password

The valid password for the FTP server.

Account Name

The valid account for the FTP server.

Use Passive Command

If set to true, the service uses a PASV command. Otherwise, it uses the PORT command.

Timeout

Timeout interval for socket in seconds.

Retry Interval

Retry interval in seconds (allows xxhxxmxxs format). You can omit or use 0 for no retry.

Connection Retry

This shows the number of attempted failed connections to the FTP server.

SSL Parameters

Use SSL

If set to true, the connection is secured using Secure Sockets Layer (SSL).

Security Protocol

This shows the type of security protocol to be used. The following list describes the options of the security protocol.

  • SSL. This protocol supports some versions of SSL, and may also support other versions.
  • SSLv2. This protocol supports SSL version 2 or higher.
  • SSLv3. This protocol supports SSL version 3, and may support other versions.
  • TLS. This protocol supports some versions of TLS, and may also support other versions.
  • TLSv1. This protocol supports TLS version 1, and may support other versions.

This field is not needed if Keystore is a SSL Provider.

Secure Data Connection

This is used to enable a secure data connection, for example. transfer data securely. It is used in conjunction with Secure Control Connection.

Use 128-bit Encryption

This parameter enforces the use of 128-bit encryption.

SSL Security

This parameter describes the FTP Server connection type. Select one of the following options:

  • unknown. This setting defaults to Explicit Security then fails over to Implicit Security.
  • explicit. In order to establish the SSL link, explicit security requires that the FTP client issue a specific command to the FTP server after establishing a connection. The default FTP server port is used.
  • implicit. Implicit security automatically begins with an SSL connection as soon as the FTP client connects to an FTP server. In implicit security, the FTP server defines a specific port for the client (typically 990) to be used for secure connections.

Keystore File or Keystore Security Provider

In this field, you can:

  • Enter the full path to the Keystore file, which provides certificate material to be used for SSL connection.
  • Name the Keystore Security Provider.
  • Use the configured default Keystore Security Provider by leaving it blank.

Keystore Password

This field is used to enter the password to access Keystore file. This is not required if Keystore File or Keystore Security Provider is the name of a Keystore Security Provider.

Keystore Type

This field shows the type of the Keystore. It is not needed if Keystore File or Keystore Security Provider is the name of a Keystore Security Provider.



x
FTP Read Service (com.ibi.agents.XDFTPReadAgent)

Syntax:

com.ibi.agents.XDFTPReadAgent

Description:

The FTP Read service is used to read files from a FTP server.

Parameters:

Parameter

Description

Host Parameters

Host Name

In this field, enter the DNS name (or IP address) of the FTP server that you wish to connect to. Use the host port if the standard port is not 21.

Remote Port

This is the port to connect to on the FTP site. Leave it blank for default port 21.

User Name

Name used as the valid user ID on the FTP server.

Password

The valid password for the FTP server.

Account Name

The valid account for the FTP server.

Use Passive Command

If set to true, the service uses a PASV command. Otherwise, it uses the PORT command.

Timeout

Timeout interval for socket in seconds.

Retry Interval

Retry interval in seconds (allows xxhxxmxxs format). You can omit or use 0 for no retry.

Connection Retry

This shows the number of attempted failed connections to the FTP server.

Service Parameters

File Name Tag

Name of the tag from the input document in which to find the file name.

Enclose Tag

This parameter is the name of the tag in which to enclose data read. If omitted, no tagging of the data is done. If used, the output is an XML document. If the Transfer Mode is binary and the Enclose Tag is specified, the base64 Encoding should be selected or else the user risks getting an error when the resulting XML document is parsed.

Base Path

Optional directory to be used if the incoming name is not absolute. The user can use this parameter to specify a directory entry that will be combined with the File Name, obtained from the File Name Tag, to create a path to the file on the FTP server.

Input Data Format

This parameter is the format of the input data. The default setting is flat.

  • flat. The data is transferred from the FTP server as a flat unformatted document.
  • XML. The data is transferred from the FTP server as a text formatted document. The data that is transmitted is assumed to be a valid XML document and is parsed as such. If the document is not valid then an error is returned by the service.

Transfer Mode

This is a form of FTP transmission. Select one of the following modes:

  • ascii. The file is retrieved as text from the FTP server. The data received by iSM is translated into text based on the code page configuration of iSM.
  • binary. The file is retrieved as a binary block. No text translation is performed by iSM.

Encoding

This parameter is the character set encoding to be performed on input. Select one of the following options:

  • asis. The data from the FTP server is not translated.
  • base64. The data from the FTP server is converted into a base 64 XML compatible string.

Delete After Read

Use this parameter if you wish to delete the file after the read.

SSL Parameters

Use SSL

If set to true, the connection is secured using Secure Sockets Layer (SSL).

Security Protocol

This shows the type of security protocol to be used. The following list describes the options of the security protocol.

  • SSL. This protocol supports some versions of SSL, and may also support other versions.
  • SSLv2. This protocol supports SSL version 2 or higher.
  • SSLv3. This protocol supports SSL version 3, and may support other versions.
  • TLS. This protocol supports some versions of TLS, and may also support other versions.
  • TLSv1. This protocol supports TLS version 1, and may support other versions.

This field is not needed if Keystore is a SSL Provider.

Secure Data Connection

This is used to enable a secure data connection, for example. transfer data securely. It is used in conjunction with Secure Control Connection.

Use 128-bit Encryption

This parameter enforces the use of 128-bit encryption.

SSL Security

This parameter describes the FTP Server connection type. Select one of the following options:

  • unknown. This setting defaults to Explicit Security then fails over to Implicit Security.
  • explicit. In order to establish the SSL link, explicit security requires that the FTP client issue a specific command to the FTP server after establishing a connection. The default FTP server port is used.
  • implicit. Implicit security automatically begins with an SSL connection as soon as the FTP client connects to an FTP server. In implicit security, the FTP server defines a specific port for the client (typically 990) to be used for secure connections.

Keystore File or Keystore Security Provider

In this field, you can:

  • Enter the full path to the Keystore file, which provides certificate material to be used for SSL connection.
  • Name the Keystore Security Provider.
  • Use the configured default Keystore Security Provider by leaving it blank.

Keystore Password

This field is used to enter the password to access Keystore file. This is not required if Keystore File or Keystore Security Provider is the name of a Keystore Security Provider.

Keystore Type

This field shows the type of the Keystore. It is not needed if Keystore File or Keystore Security Provider is the name of a Keystore Security Provider.



x
FTP SREG Service (com.ibi.agents.XDFTPSREGAgent)

Syntax:

com.ibi.agents.XDFTPSREGAgent

Description:

The FTP SREG service is used only with the iWay FTP Server extension, FTP Server channel. The identified special registers are sent to the server using a SITE command. This facility is used when programming process flows for the Managed File Transfer capability of iWay.

This service has no meaning with non-iWay FTP servers and should not be used with non-iWay FTP servers.

Parameters:

Parameter

Description

Host Parameters

Host Name

In this field, enter the DNS name (or IP address) of the FTP server that you wish to connect to. Use the host port if the standard port is not 21.

Remote Port

This is the port to connect to on the FTP site. Leave it blank for default port 21.

User Name

Name used as the valid user ID on the FTP server.

Password

The valid password for the FTP server.

Account Name

The valid account for the FTP server.

Use Passive Command

If set to true, the service uses a PASV command. Otherwise, it uses the PORT command.

Timeout

Timeout interval for socket in seconds.

Retry Interval

Retry interval in seconds (allows xxhxxmxxs format). You can omit or use 0 for no retry.

Connection Retry

This shows the number of attempted failed connections to the FTP server.

SREGs

Type of variable

This parameter shows the type of variable to be used (headers appear in emitted documents as header values).

  • user. Temporary variable definition for general use.
  • doc. Temporary variable definition associated with a document.
  • hdr. Temporary variable to be included in message headers.

SSL Parameters

Use SSL

If set to true, the connection is secured using Secure Sockets Layer (SSL).

Security Protocol

This shows the type of security protocol to be used. The following list describes the options of the security protocol.

  • SSL. This protocol supports some versions of SSL, and may also support other versions.
  • SSLv2. This protocol supports SSL version 2 or higher.
  • SSLv3. This protocol supports SSL version 3, and may support other versions.
  • TLS. This protocol supports some versions of TLS, and may also support other versions.
  • TLSv1. This protocol supports TLS version 1, and may support other versions.

This field is not needed if Keystore is a SSL Provider.

Secure Data Connection

This is used to enable a secure data connection, for example. transfer data securely. It is used in conjunction with Secure Control Connection.

Use 128-bit Encryption

This parameter enforces the use of 128-bit encryption.

SSL Security

This parameter describes the FTP Server connection type. Select one of the following options:

  • unknown. This setting defaults to Explicit Security then fails over to Implicit Security.
  • explicit. In order to establish the SSL link, explicit security requires that the FTP client issue a specific command to the FTP server after establishing a connection. The default FTP server port is used.
  • implicit. Implicit security automatically begins with an SSL connection as soon as the FTP client connects to an FTP server. In implicit security, the FTP server defines a specific port for the client (typically 990) to be used for secure connections.

Keystore File or Keystore Security Provider

In this field, you can:

  • Enter the full path to the Keystore file, which provides certificate material to be used for SSL connection.
  • Name the Keystore Security Provider.
  • Use the configured default Keystore Security Provider by leaving it blank.

Keystore Password

This field is used to enter the password to access Keystore file. This is not required if Keystore File or Keystore Security Provider is the name of a Keystore Security Provider.

Keystore Type

This field shows the type of the Keystore. It is not needed if Keystore File or Keystore Security Provider is the name of a Keystore Security Provider.



x
HTTP Emit Service (com.ibi.agents.XDHTTPEmitAgent)

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:

  • GET. Data on the URL and URL encoded.
  • POST (default). Content-Length header.

Response content type

Overrides content type of response. Select one of the following options from the drop-down list:

  • application/EDI-X12
  • application/EDIFACT
  • application/XML
  • text/html
  • text/plain

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:

  • true
  • false (default)

Proxy

Proxy

If set to true, emit through proxy server. Select one of the following options from the drop-down list:

  • true
  • false (default)

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:

  • true
  • false (default)

Use 128-bit Encryption

Enforces the use of 128-bit encryption. Select one of the following options from the drop-down list:

  • true
  • false (default)

Security Protocol

Select one of the following security protocols from the drop-down list:

  • 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 (default). Supports some version of TLS; may support other versions.
  • TLSv1. Supports TLS version 1; may support other versions.

Agent Specific Parameters

Return *

Return from this agent. Select one of the following options from the drop-down list:

  • input
  • response (default)
  • status

Use Preemitters

If set to true, preemitters will be used for this emit. Select one of the following options from the drop-down list:

  • true (default)
  • false

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:

  • true
  • false (default)

The result of the post appears in the <native> section of the <emitstatus> result. If the Return parameter value 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.



x
HTTP Nonblocking Emit Service (com.ibi.agents.XDNHttpEmitAgent)

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.

Cookie Store Name

Allows thread-specific management of cookies. If not specified, a cookie store global to the HTTP Client provider will be used.

Action Method

Select one of the following supported methods from the drop-down list:

  • GET method with data on the URL and URL Encoded.
  • POST method with a Content-Length header.

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.

Domain

Domain for NTLM authentication challenges. Note that to use NTLM, you must enable connection persistence.

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 namespace prefix, or supply a namespace prefix here. None means that no special registers will be sent as HTTP headers.

  • Default Namespace. Sends HDR type registers with no namespace prefix.
  • Supply a namespace prefix here to indicate which headers to send.
  • 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.

  • Default Namespace. Creates special registers with no namespace prefix.
  • Supply a namespace prefix here to indicate header namespace.
  • Empty namespace prefix will be treated as default.

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 identifier of the connection will be stored in the httpclient-key special register and the connection can be handled by the HTTP Client Manager agent.

Maximum HTTP Client Manager Delay

Maximum time the HTTP Client Manager can take to handle a particular connection before it is automatically aborted. The format is [xxh][xxm]xx[s]. The default is 60 seconds.

Try Expect/Continue Handshake?

If checked, client will send the HTTP Expect: 100-continue header and await HTTP 100 response before sending request body.

Chunk Encoded Request?

If set to true, request entity will be sent with chunk encoding.

Maximum Request Size

Maximum size, after compression, of a request entity that can be sent with this emitter. A value of 0 means no maximum and if no value is specified, the parameter defaults to 256KB.

Maximum Response Size

Maximum size of a response entity that can be received by this emitter. 0 means no maximum and blank will default to 256KB.

TCP 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, the 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.



x
HTTP Read Service (com.ibi.agents.XDHTTPReadAgent)

Syntax:

com.ibi.agents.XDHTTPReadAgent

Description:

This service reads an HTTP source using 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 webpages 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>

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 receive the contents of index1.hml as the output from the service. For example:



x
Inflate Service (com.ibi.agents.XDInflateAgent)

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:

  • bytes (default)
  • xml

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.



x
Insert SAML Assertion Service (com.ibi.agents.XDInsertSAMLAssertionAgent)

Syntax:

com.ibi.agents.XDInsertSAMLAssertionAgent

Description:

This service is used to generate a WSSE SecurityTokenReference containing an embedded SAML assertion.

For more information about the Insert SAML Assertion service, see the iWay Service Manager Security Guide.


Top of page

x
Insert WSSE Timestamp Service (com.ibi.agents.XDInsertWSSETimestampAgent)

Syntax:

com.ibi.agents.XDInsertWSSETimestampAgent

Description:

This service is used to generate a WSSE Timestamp.

For more information about the Insert WSSE Timestamp service, see the iWay Service Manager Security Guide.


Top of page

x
Insert WSSE Token Service (com.ibi.agents.XDInsertWSSETokenAgent)

Syntax:

com.ibi.agents.XDInsertWSSETokenAgent

Description:

This service is used to generate a WSSE Binary Security Token containing an X509 certificate.

For more information about the Insert WSSE Token service, see the iWay Service Manager Security Guide.


Top of page

x
Internal Emit Service (com.ibi.agents.XDInternalEmitAgent)

Syntax:

com.ibi.agents.XDInternalEmitAgent

Description:

This service is used to send a message to an internal queue. The message is marshaled with its context and placed on the queue for execution by the internal queue listener and channel. The messages are picked up from the queue to be processed in the order they arrived. Messages can be intermixed where appropriate with pending messages that are waiting to be processed.

Parameters:

Parameter

Description

Queue Name *

The name of the internal queue that is serviced by an internal queue listener. The queue is created when the channel is started and exists as long as the server is running.

Want User Registers

If set to true, user-type registers are passed to the destination queue. DOC and HDR registers are always transferred with the message. By default, this parameter is set to false.

Priority

Determines the relative priority of the message. Use this parameter to reorder the execution of messages. Only the relative numbers matter. Higher numbers do not execute messages faster, only the acquisition order by the internal channel is affected. By default, this parameter is set to 4.

Put Timeout

Determines the amount of time that the emit will wait for the internal channel to accept the message. If the destination queue is inhibited, the emit is paused until the message can be accepted. If the timeout period expires, a status message is sent down the timeout edge, where your application might chose to pend the message. For more information on using inhibition to provide cascading flow congestion management, see Chapter 1, Introducing iWay Service Manager in the iWay Service Manager User's Guide.

Request Context Namespace

By specifying a namespace, registers in that namespace will be sent to the destination queue. This is used to limit the registers to those of interest to the message process.

Response Context Namespace

This parameter is used only for synchronous emits. If set, registers returned from the internal channel are placed into this namespace.

Return *

Select one of the following options from the drop-down list:

  • status (default). A status document is returned showing the success of the queuing operation.
  • input. The input document that originally came into the emit service is returned.
  • response. The response from the execution through the internal channel is returned. When response is set, the emitter waits for the response from the internal channel, making this a synchronous call.

Avoid Preemitter

Determines whether any preemitter should be avoided. Select one of the following options from the drop-down list:

  • true (default)
  • false

Respect Transactionality

Determines whether this emitter should post messages regardless of the commit/rollback state of the transaction. For example, you may not want to respect transactionality when passing messages that reflect the progress of an application or errors within the application. By default, this parameter is set to true.

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. By default, this parameter is set to false.

Timeout

Determines how many seconds to wait for a synchronous response. Set to 0 or leave blank to wait indefinitely.

The edges returned are listed in the following table.

Edge

Description

success

The message was enqueued for execution by the listener and channel that is servicing the destination queue.

fail_parse

The iFL used to configure this service contained an error.

fail_notfound

The queue was not available.

timeout

The message could not be placed onto the destination queue in the time period specified in the Put Timeout parameter. This signifies that the queue was inhibited and could not receive messages.

cancelled

A cancel order was received while the service was in operation.

fail_operation

The message could not be marshaled or could not be enqueued for some other reason.

notfound

The queue was not available. In some applications this may not be considered an error, so this edge is provided along with the fail_notfound edge.

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:



x
Is Reachable Service (com.ibi.agents.XDIsReachable)

Syntax:

com.ibi.agents.XDIsReachable

Description:

This service is used to 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.



x
iWay Adapter (com.ibi.agents.XDAdapterAgent)

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:

host

Is the name of the machine where iWay Service Manager is installed.

port

Is the port on which iBSP listens for SOAP requests. The default port is 9000.

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.

Persist Connection

If enabled, the adapter connection is reused between execution attempts. Select one of the following options from the drop-down list:

  • none (false). Each invocation of this service will create a new instance of the adapter. Thus, for simple processing, one instance of the adapter is used for each requested operation. When streaming, one adapter instance will be reused for all messages in the stream. In a transaction, each created adapter instance receives the commit or rollback.
  • persist (true). This refers to persistence at the process flow instance level. When an instance of the adapter is first encountered for a target, the service creates a new instance of the adapter that is specific to that target.

    This adapter instance is reused by subsequent invocations of the service, within an iterator loop and across invocations of the worker, including use within a streaming preparser situation.

    At the end of the process flow, the adapter instance is no longer available.

  • pool. An adapter with a specific set of parameters and a specific target will be cached at the worker (sub-channel) level. This means that multiple services within a process flow will share an adapter and that multiple invocations of the process flow or a different process flow requiring the same adapter or target will reuse that adapter. If you have a threading count of n, then there will be n instances of the cached adapter.

    Note: The term target refers to an evaluated target in which any iFL has been replaced with the value of that iFL. For example, a target with a port in a special register will be treated as the port value after the register value is obtained.

Promote OnFailure

If set to false, failure edges, such as fail_connect, are promoted to OnError. This is used for upward compatibility purposes.

Emit OnFailure

If the Promote OnFailure parameter is set to false, this parameter determines the type of document to emit on failures. Select one of the following options from the drop-down list:

  • status. A status document will become the output document. This option is selected by default.
  • input. The input document will become the output document.

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).



x
Using iWay Functional Language With Adapters

A frequent requirement is to use iFL to adjust the target of an adapter, for example, to change the URL of a server to be reached. The example in this section discusses that issue.

Assume two MS SQL Server databases, smd1 and smd2, each of which contains a table named testtable. The two tables have the same structure, but contain different data. The application designer wants to create a flow using the RDBMS adapter that executes the SQL statement, select * from testable, against either the table in smd1 or the one in smd2, depending on the input document.

Using Application Explorer, create an RDBMS adapter target pointing at either of the two databases, as shown below.

In the target, create the statement, which can be named stmt1.

Now, add the adapter to the iSM registry.

Edit the parameter values imported from the target to use iFL expressions.

Note that the expression combines the _property and _sreg functions. Since there are several connection parameters that are required to be set dynamically for each destination, you can store the values you need in a properties file using property names that follow a naming convention. Thus, if you can set the dest special register, then you can use the value of this register to get the values that are required to make a connection. For this example, the properties file has the following structure:

smd1.host=localhost
smd1.port=1433
smd1.dbname=smd1
smd1.id=sa
smd1.password=harrison
smd1.url=jdbc:sqlserver://localhost:1433;databaseName=smd1
smd2.host=sdewitt4
smd2.port=1433
smd2.dbname=smd2
smd2.id=sa
smd2.password=harrison
smd2.url=jdbc:sqlserver://localhost:1433;databaseName=smd2

Save the adapter in the registry as DynamicRDBMS.

Other ways to store specific information includes the iWay Trading Profile Manager or another table reachable via the _jdbc() function call.

Now you need to create a flow that uses the DynamicRDBMS adapter. Since the adapter is defined in the registry, you must work in a registry based project. To keep things simple, the flow will contain two components. The XDSREGAgent service will set the dest special register to either smd1 or smd2, depending on the value of an attribute in the input document. To keep things simple, you will just add this attribute to the standard RDBMS adapter input message, so the value of dest can be:

_xpath(/AdapterParams/@dest)

The next step is to add the DynamicRDBMS adapter.

Now, you can test the flow using the following input:

<AdapterParams location="RDBMS/Statements/stmt1" dest="smd2"/> 

Since the dest attribute is set to smd2, you should use the correct properties to connect to the smd2 database.

Finally, you can retest the flow using the following input:

<AdapterParams location="RDBMS/Statements/stmt1" dest="smd1"/>

Now, the dest attribute is smd1, which means the adapter should connect to the smd1 database and retrieve different data.

Notice that all the bar values from the first result have changed to foo.


Top of page

x
JDBC Service (com.ibi.agents.XDJdbcAgent)

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>


x
JMS Read Agent (com.ibi.agents.XDJMSReadAgent)

Syntax:

com.ibi.agents.XDJMSReadAgent

Description:

This service reads a message from a JMS (Java Messaging Server) queue or topic. For more information on JMS, see the Queuing Adapters chapter in the iWay Service Manager Protocol Guide.

Parameters:

Parameter

Description

Name

The name of the queue or topic to be read.

JMS Message Model

Type of JMS Message Model to use. Select one of the following values from the dropdown list:

  • queue
  • topic

Durable Subscriber

A durable subscriber is a virtual message consumer for the specified topic, identified by the unique combination of a client identifier and subscriber name. When a message arrives for the topic and no message consumer is currently active for it, the message will be retained for later delivery.

Message Type

The type of JMS Message the system is to expect. Select one of the following values from the dropdown list:

  • text
  • bytes
  • map
  • dynamic

Timeout

The timeout period in seconds.

Tag

Name of the XML tag to wrap the data read in. Required if data is flat.

Embed

Whether to embed the data from the read operation into the input document. Select one of the following values from the dropdown list:

  • true
  • false

Parent Tag

Where in the input document should the input data be embedded,

Base64 Encode

Base64 encode the read in document when embedding. Select one of the following values from the drop-down list:

  • true
  • false

Parse to XML

Should the agent attempt to parse the input into XML:

  • true
  • false

Out Document

Select one of the following values from the drop-down list:

  • status. A status document will become the output document.
  • input. Input document will become the output document.
  • result. Message read will become the out document.

Action on Failure

Whether input document or status document returned on failure. Select one of the following values from the drop-down list:

  • input
  • status

Connection Factory

The object store name.

Local Context

True if connecting to an internal jndi store. Select one of the following values from the drop-down list:

  • true
  • false

JNDI Factory

Factory class name.

JNDI URL

The JNDI URL.

User ID

User ID for challenges.

Password

Password for challenges.

Acknowledgement

Acknowledgement or transactional. Select one of the following values from the drop-down list:

  • Auto Acknowledge
  • Client Acknowledge
  • Dups OK Acknowledge


x
JMSQ Browse Service (com.ibi.agents.XDJMSBrowse)

Syntax:

com.ibi.agents.XDJMSBrowse

Description:

This service browses a JMS (Java Messaging Server) queue. It returns the message read from the queue but does not delete the messages on the queue. For more information on JMS, see the Queuing Adapters chapter in the iWay Service Manager Protocol Guide.

Parameters

Parameter

Description

Use local JNDI

If set, use local context, else remote JNDI. Select one of the following values from the dropdown list:

  • true
  • false

JNDI URL

URL needed to reach the JNDI provider.

JNDI Factory

Object name in the JNDI (example: jndi.openjms.InitialContextFactory).

Connection Factory

JMS Queue connection factory

User ID

User ID to log onto queue manager.

Password

Password to log onto queue manager.

Queue Name

Name of the queue to browse.

Filter

Selection filter.

Namespace prefix

Message properties are prefixed with this in special registers (separated by .).

Output format

How the output is provided. Select one of the following values from the drop-down list:

  • Status
  • Xml
  • Asread


x
JMSQ Emit Service (com.ibi.agents.XDJMSQEmitAgent)

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:

  • status. Status document will be the output document.
  • input. Input document will become the output document.

Output message type

Select an output message type.

JMS Reply-to

Queue or Topic (used for JNDI lookup).



x
Legacy Record to XML Converter Service                   (com.ibi.agents.XDLegacyRecordToXMLAgent)

Syntax:

com.ibi.agents.XDLegacyRecordToXMLAgent

Description:

This service converts flattened bytes described by a copybook to an XML node.

Parameters:

Parameter

Description

Copybook Location

The full path to the COBOL copybook that describes the input record.

Copybook Option File Location

Full path to the Copybook option file. This file specifies special filed handling rules. For more information, see Using the Copybook Option File.

Full FD?

Set this parameter to true if COBOL group field headings are required to appear in the output XML. By default, false is selected.

Multiple Records?

If set to true, then multiple CommArea records are produced if the input byte array is larger than the copybook size. By default, false is selected.

Input

Source of Legacy Record

The COBOL copybook formatted source. If no value is specified, then the flattened input document is used. Otherwise, use iWay Functional Language (iFL) to specify the source.

Base 64 Encoded Input

Determines if the source input data is encoded using Base64.

Input Encoding

The Internet Assigned Numbers Authority (IANA) character set for the legacy record. You can select a value from the drop-down list or type the name of a code page directly in the field. By default, the leave option is selected, which uses the default encoding of the listener.

Output

Output Node

An XPath expression to specify the node in the input document to which the converted legacy record will be added as a child. XPath must point to an existing node, since new nodes are not created. If no value is specified, then the converted record is used as the output document. If the input document is in non-XML format, then the converted record is always returned as the output document.



x
Using the Copybook Option File

The copybook option file is an XML document that allows the following data handling options to be set:

  1. Error handling options for packed (COMP-3), zoned, alphanumeric, and binary fields in bytes to XML conversion.
    • Special Character Handling. High values (X'FFFFFFFF'), low values (X'00000000'), blanks (X'40404040'), ampersands (X'50505050'), and number or pound signs (X'7b7b7b7b') may represent expected input in a customer application. These values may be handled by a custom rule rather than be parsed (and possibly throw an error) according to the type of the field.
    • Invalid Data Handling. Data that is invalid, but does not match the special character handling types indicated above, may also be handled by a rule. This can return an arbitrary string as the contents of the field, optionally reporting the raw error bytes as an attribute. Finally, it may be specified that invalid data should throw exceptions.
  2. Leading Zeros option for packed and zoned fields.

The Copybook option file is identified by the Copybook Option File Location parameter during the service configuration (com.ibi.agents.XDLegacyRecordToXMLAgent).

The format of the copybook option file is an XML file.

Alternatively, the service checks for the presence of a file with the full path of the copybook and if the _option suffix is appended. This copybook option file is then used. For example, if the copybook is c:\copybook.cbl, then c:\copybook.cbl_option would be its associated copybook option file.

The following is an example of a copybook option file.

<?xml version="1.0" ?>
<Options>
 <FieldRules>
  <FieldRule>
   <GroupName>ExtremValueTEST</GroupName>
   <FieldName>Account</FieldName>
   <FieldType>COMP-3</FieldType>
   <Actions>
    <AcceptAs onValue="HIGHVALUE">1000</AcceptAs> 
    <AcceptAs onValue="LOWVALUE"/>
    <AcceptAs onValue="INVALID" reportRawData=”YES”>
   </Actions>
  </FieldRule>
  <!--
   A general rule.
   If no "GroupName" and "FieldName", the rule applies to all the fields of the field type specified.
  -->
  <FieldRule>
   <!--  required -->
   <FieldType>COMP-3</FieldType> 
   <Actions>
    <AcceptAs onValue="LOWVALUE"/>
    <AcceptAs onValue="BLANK"></AcceptAs>
    <AcceptAs onValue="AMPERSAND"></AcceptAs>
    <AcceptAs onValue="POUND"></AcceptAs>
    <ThrowException onValue="INVALID"></ThrowException> 
   </Actions>
  </FieldRule>
 </FieldRules>
</Options>

The root element is <Options>. You can define multiple <FieldRule> elements under the <FieldRules> parent element. The combination of these three elements, <GroupName>, <FieldName>, and <FieldType>, define the specific level of a rule. If a rule does not specify <GroupName> and <FieldName>, then it applies to all the fields of a particular field type. Currently the supported types are COMP-3, Zoned (PIC 9), Alpha (PIC X), and binary (PIC 9 COMP). The <FieldType> element is required.

In the above sample copybook option file, the first <FieldRule> element is more specific than the second <FieldRule> element, because it only applies to one specific COMP-3 field with name Account under the ExtremValueTEST group. The second <FieldRule> element applies to all the COMP-3 fields in a COBOL record.

A <FieldRule> can have one <Actions> element, which can have multiple elements of the following types:

<AcceptAs> and <ThrowException> should not both be specified for the same pattern for the same field.

The predefined "PATTERN" strings for the onValue attribute include:

In the above copybook option file example, if the Account field has a value with all 0xFF bytes, then the value of the field is set to 1000. If the field has a value with all 0x00 bytes, then the field is set to empty. If the field has a blank value, then the field is set to empty. The blank rule is defined in the second <FieldRule> element.

If an options file has multiple actions that are applicable to a field, then the actions that are defined in the most specific field rule applies. If the Account field has all 0xFF bytes, then the value of the field is set to 1000. This is because the first <FieldRule> element is more specific than the second <FieldRule> element.

If two applicable actions are defined at the same level in terms of field rule specificity, then the action that appears first in the options file will be applied. One exception to this is the INVALID pattern. The INVALID pattern will be checked after the other patterns even if it appears before the other patterns.

If there is no option file or no rules are defined for a field, then an exception is generated if the field value is not valid data.

<PreserveLeadingZeros> only applies to COMP-3 and Zoned fields. This action type specifies whether the leading zeros in a number should be retained for the length of the field type. The default behavior is to truncate any leading zeros. If you want to keep leading zeros to all the COMP-3 and Zoned fields, then add the following <FieldRule> elements to an options file:

<FieldRule>
  <FieldType>COMP-3</FieldType>
  <Actions>
   <PreserveLeadingZeros>YES</PreserveLeadingZeros>
  </Actions>
</FieldRule>
<FieldRule>
  <FieldType>Zoned</FieldType>
  <Actions>
   <PreserveLeadingZeros>Y</PreserveLeadingZeros>
  </Actions>
</FieldRule>

If a copybook option file does not have <PreserveLeadingZeros> defined or if the value of <PreserveLeadingZeros> is not YES or Y, then the leading zeros of COMP-3 and Zoned fields are not preserved.

If only specific fields should preserve leading zeros, more specific <fieldRule> elements are required. To make a <fieldRule> element more specific, you need to specify <GroupName> and/or <FieldName>.

For example, if you want all of the zoned fields to have leading zeros except one field balance, you must create the rules shown in the following example:

<?xml version="1.0" ?>
<Options>
    <FieldRules>
	<FieldRule>
	   <GroupName>BankAccount</GroupName>
	   <FieldName>balance</FieldName>
	   <FieldType>Zoned</FieldType>
   <Actions>
       <PreserveLeadingZeros>NO</PreserveLeadingZeros>
	   </Actions>
	</FieldRule>
	
	<!--  more general rule   -->
	<FieldRule>
	   <FieldType>Zoned</FieldType>
	   <Actions>
		 <PreserveLeadingZeros>Y</PreserveLeadingZeros>
	   </Actions>
	</FieldRule>
    </FieldRules>
</Options>

The more specific rule for the balance field will take precedence over the general rule. Therefore, the leading zeros of this field are not preserved.



x
Additional Usage Examples for the Copybook Option File

Example #1

The following copybook option file can be used to set a general policy of treating high values, low values, blanks as empty, and generate an exception for other format errors.

<?xml version="1.0" ?>
<Options>
      <FieldRules>
          <FieldRule>
              <FieldType>COMP-3</FieldType>
              <Actions>
                   <AcceptAs onValue="LOWVALUE"/>
                   <AcceptAs onValue="HIGHVALUE"></AcceptAs>
                   <AcceptAs onValue="BLANK"></AcceptAs>
              </Actions>
          </FieldRule>
      </FieldRules>
</Options>

Example #2

The PACKED02 field is known to sometimes contain blanks, which should be interpreted as 0 (zero). Sometimes, special non-packed escape data must be handled upstream by the application. In this scenario, the following copybook option file can be used.

<?xml version="1.0" ?>
<Options>
      <FieldRules>
          <FieldRule>
               <FieldName>PACKED02</FieldName>
               <FieldType>COMP-3</FieldType>
               <Actions>
                     <AcceptAs onValue="BLANK">0</AcceptAs>
                     <AcceptAs reportRawData=”YES” onvalue=”INVALID”></AcceptAs>
               </Actions>
          </FieldRule>
      </FieldRules>
</Options>

Top of page

x
Local Master Service (com.ibi.agents.LocalMasterAgent)

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.



x
Mail Attach Service (com.ibi.agents.XDMailAttachAgent)

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.



x
Mark Attach Service (com.ibi.agents.XDMarkAttachAgent)

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.



x
Marshal Service (com.ibi.agents.XDMarshallAgent)

Syntax:

com.ibi.agents.XDMarshallAgent

Description:

This service collects and serializes the content of a current document and its channel context as a single message. The marshaled message can then be sent to another listener, where it will automatically be unmarshaled to reconstruct the original channel.

For example, you can marshal a message and then use an MQ or File emit service to send the message to another listener on that protocol. The next listener picks up the message, and the processing of the message resumes. The second channel can exist on another configuration or even another host.

Sending a marshaled message insures that the continuation of execution is on the same transaction ID (TID) as that of the originating channel.

You must not use this service when sending messages through server facilities that are managed internally. These include the internal emit service, the internal emitter, the RVI gateway relay facilities, and messages to be placed on pending queues. These services automatically marshal their own messages, and marshaling a marshaled message would create an unpredictable error.

Note: This service is packaged with the iwgateway.jar extension.

Parameters:

Parameter

Description

Compress Message

During marshaling, the message body will be compressed. Compression works best with messages restricted to a small set of octets (such as an XML message), but works poorly when the message consists of randomly distributed octets, such as a binary message.

Marshall User Special Registers

Determines if marshaling should include the user-level special registers. By default, DOC and HDR registers are included in the marshaled message, along with some specific registers needed for Business Activity Monitor (BAM) and transaction tracking.

Namespace

If a namespace is specified, only special registers in the designated namespace are included in the marshaled message, along with the specific registers needed for BAM and tracking. This can be helpful when preparing multiple marshals for different targets, each of which needs different header registers. Other services are available to manipulate special register namespaces as required.

Use Encryption

Determines if marshaled messages should be encrypted. A secure AES cipher is used, and must be deciphered by the receiver (using the Unmarshal service). Automatic unmarshaling cannot be performed on an encrypted message.

AES Key

A cipher key shared between the marshal and unmarshal services. Usually, this is specified as a special register or from a properties file.

The edges that are returned by this service are listed in the following table:

Edge

Description

success

The message has been marshaled and is ready for sending.

fail_operation

The message could not be compressed, encrypted, or marshaled.

For more information, see Unmarshal Service (com.ibi.agents.XDUnmarshallAgent).


Top of page

x
Move Service (com.ibi.agents.XDMoveAgent)

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.


Top of page

x
MQ Emit Service (com.ibi.agents.XDMQEmitAgent)

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.



x
MQ Read Service (com.ibi.agents.XDMQReadAgent)

Syntax:

com.ibi.agents.XDMQReadAgent

Description:

This agent reads one message on an MQ queue. Optionally the message can be selected based on a correlation ID.

If the message read appears to be XML the agent will attempt to parse it. Otherwise it will be added as a flat document.

Parameters:

Parameter

Description

Manager

Name of the queue manager.

Queue Name

Name of the queue to read.

Correlation ID

If present, a message of this correlation ID will be read.

Host

MQ Host if using MQ Client.

Port

MQ Port if using MQ Client.

Channel

MQ Server Channel if using MQ Client.

Timeout

Timeout in seconds.

Browse

If true, this is a browse operation. If false, this is a destructive read.

Return

Description

success

Read was successful.

fail_connect

Could not connect to the queue.

fail_parse

Could not convert message to XML.

fail_operation

Could not read the message.

fail_timeout

The read timed out.



x
MSMQ Emit Service (com.ibi.agents.XDMSMQEmitAgent)

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.



x
MTOM Service (com.ibi.agents.XDMTOMAgent)

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:

  • Reconstruct the original message
  • Create an MTOM package
  • Add an 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.



x
Node Set Extract Service (com.ibi.agents.XDNodeSetExtractAgent)

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>


x
P Flow Service (com.ibi.agents.XDPFlowAgent)

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.



x
P Flow Test Service (com.ibi.agents.XDPFlowTestAgent)

Syntax:

com.ibi.agents.XDPFlowTestAgent

Note: This agent is intended for internal use only.


Top of page

x
Parse to XML Service (com.ibi.agents.XDToXML)

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.


Top of page

x
PF File Operations Service (com.ibi.agents.XDPFFileOpsAgent)

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>


x
PF File Read Service (com.ibi.agents.XDPFFileReadAgent)

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.



x
PFFTP Operations Service (com.ibi.agents.XDPFFTPOpsAgent)

Syntax:

com.ibi.agents.XDPFFTPOpsAgent

Description:

The PFFTP Operations service is used to perform file operations on files within the FTP server based on parameters configured by the user.

Parameters:

Parameter

Description

Host Parameters

Host Name

In this field, enter the DNS name (or IP address) of the FTP server that you wish to connect to. Use the host port if the standard port is not 21.

Remote Port

This is the port to connect to on the FTP site. Leave it blank for default port 21.

User Name

Name used as the valid user ID on the FTP server.

Password

The valid password for the FTP server.

Account Name

The valid account for the FTP server.

Use Passive Command

If set to true, the service uses a PASV command. Otherwise, it uses the PORT command.

Timeout

Timeout interval for socket in seconds.

Retry Interval

Retry interval in seconds (allows xxhxxmxxs format). You can omit or use 0 for no retry.

Connection Retry

This shows the number of attempted failed connections to the FTP server.

Service Parameters

Operation

Select the command to execute when the service becomes active.

  • copy. This command copies the contents of the file defined by the user configured File (from) parameter to the file named in the File (to) parameter.
  • move. This command moves the contents of the file defined by the user configured File (from) parameter to the file named in the File (to) parameter.
  • rename. This command renames the file defined by the user configured File (from) parameter to the file named in the File (to) parameter.
  • prepend. This command copies the contents of the file defined by the user configured File (from) parameter to the beginning of the file named in the File (to) parameter.
  • append. This command copies the contents of the file defined by the user configured File (from) parameter to the end of the file named in the File (to) parameter.
  • delete. This command deletes the file defined by the user configured File (from) parameter.
  • size. This command gets the size of the file defined by the user configured File (from) parameter. Create a Special register by the name defined in the Size parameter.
  • exist. This command determines if the file is defined by the user configured File (from) parameter.

File (From)

Originating file to be operated on. Relative or absolute file paths are supported explicitly or through an SREG or XPath expression, evaluated using the incoming document.

File (To)

Destinations file to be operated on. Wild cards are accepted. This is required except when the option selected is delete, size, or exists.

Size

Name of the Special Register designated to hold size. This parameter is required for size.

Out Document

Type of document returned by the operation (bad input defaults to result).

  • result. This option creates a document containing the results of the operation. If the option is either append or prepend, then the results will be the combination of the two FTP files defined in the File (from) and File (to) parameters. Otherwise, a status document is generated.
  • status. This option creates a status document reflecting the results of the operation.
  • original. This option returns the input document.

Action on Failure

Select the type of action, whether input document or status document, returns on failure.

  • status. This option creates a status document reflecting the results of the operation.
  • input. This option returns the input document.

Retry

If non-zero, the operation will retry n times at one-second intervals.

SSL Parameters

Use SSL

If set to true, the connection is secured using Secure Sockets Layer (SSL).

Security Protocol

This shows the type of security protocol to be used. The following list describes the options of the security protocol.

  • SSL. This protocol supports some versions of SSL, and may also support other versions.
  • SSLv2. This protocol supports SSL version 2 or higher.
  • SSLv3. This protocol supports SSL version 3, and may support other versions.
  • TLS. This protocol supports some versions of TLS, and may also support other versions.
  • TLSv1. This protocol supports TLS version 1, and may support other versions.

This field is not needed if Keystore is a SSL Provider.

Secure Data Connection

This is used to enable a secure data connection, for example. transfer data securely. It is used in conjunction with Secure Control Connection.

Use 128-bit Encryption

This parameter enforces the use of 128-bit encryption.

SSL Security

This parameter describes the FTP Server connection type. Select one of the following options:

  • unknown. This setting defaults to Explicit Security then fails over to Implicit Security.
  • explicit. In order to establish the SSL link, explicit security requires that the FTP client issue a specific command to the FTP server after establishing a connection. The default FTP server port is used.
  • implicit. Implicit security automatically begins with an SSL connection as soon as the FTP client connects to an FTP server. In implicit security, the FTP server defines a specific port for the client (typically 990) to be used for secure connections.

Keystore File or Keystore Security Provider

In this field, you can:

  • Enter the full path to the Keystore file, which provides certificate material to be used for SSL connection.
  • Name the Keystore Security Provider.
  • Use the configured default Keystore Security Provider by leaving it blank.

Keystore Password

This field is used to enter the password to access Keystore file. This is not required if Keystore File or Keystore Security Provider is the name of a Keystore Security Provider.

Keystore Type

This field shows the type of the Keystore. It is not needed if Keystore File or Keystore Security Provider is the name of a Keystore Security Provider.



x
PFFTP Read Service (com.ibi.agents.XDPFFTPReadAgent)

Syntax:

com.ibi.agents.XDFFTPReadAgent

Description:

The PFFTP Read service is used to read a file from the FTP server.

Parameters:

Parameter

Description

Host Parameters

Host Name

In this field, enter the DNS name (or IP address) of the FTP server that you wish to connect to. Use the host port if the standard port is not 21.

Remote Port

This is the port to connect to on the FTP site. Leave it blank for default port 21.

User Name

Name used as the valid user ID on the FTP server.

Password

The valid password for the FTP server.

Account Name

The valid account for the FTP server.

Use Passive Command

If set to true, the service uses a PASV command. Otherwise, it uses the PORT command.

Timeout

Timeout interval for socket in seconds.

Retry Interval

Retry interval in seconds (allows xxhxxmxxs format). You can omit or use 0 for no retry.

Connection Retry

This shows the number of attempted failed connections to the FTP server.

Service Parameters

Name of File

This parameter shows the file to be read. Relative or absolute file paths are supported explicitly or through an SREG or XPath expression evaluated using the incoming document.

Delete after read

Determine whether to delete the file read on a successful read.

Format

This parameter shows the format of the input data.

  • flat. The data is transferred from the FTP server as a flat unformatted document.
  • XML. The data is transferred from the FTP server as a text formatted document. The data that is transmitted is assumed to be a valid XML document and is parsed as such. If the document is not valid then an error is returned by the service.

Mode

Select the type of Mode to use. ASCII does conversions (EBCDIC->ASCII and vice versa), BINARY leaves data alone.

  • ASCII. File transferred from server in ASCII format.
  • BINARY. File transferred from server in binary format.

Tag

This parameter shows the name of the XML tag to wrap the data read in. This is required if data is flat.

Encoding

This parameter shows the character set encoding to be performed on input. Base 64 is required for flat binary data.

  • Asis. Encoding as set by the listener.
  • base64. This option creates a Base 64 encoded string that can be used in an XML document.

Embed

Select an option whether to embed the data from the read operation into the input document.

  • true. Data is embedded in the XML document.
  • false. Data is not embedded.

Parent Tag

This parameter shows where in the input document the input data should be embedded. This is valid only if the Embed parameter is true.

Action on Failure

Select the type of document, whether status document or input document, to return on failure.

  • status. This option creates a status document reflecting the results of the operation.
  • input. This option returns the input document.

Retry

If non-zero, the operation will retry n times at one-second intervals.

SSL Parameters

Use SSL

If set to true, the connection is secured using Secure Sockets Layer (SSL).

Security Protocol

This shows the type of security protocol to be used. The following list describes the options of the security protocol.

  • SSL. This protocol supports some versions of SSL, and may also support other versions.
  • SSLv2. This protocol supports SSL version 2 or higher.
  • SSLv3. This protocol supports SSL version 3, and may support other versions.
  • TLS. This protocol supports some versions of TLS, and may also support other versions.
  • TLSv1. This protocol supports TLS version 1, and may support other versions.

This field is not needed if Keystore is a SSL Provider.

Secure Data Connection

This is used to enable a secure data connection, for example. transfer data securely. It is used in conjunction with Secure Control Connection.

Use 128-bit Encryption

This parameter enforces the use of 128-bit encryption.

SSL Security

This parameter describes the FTP Server connection type. Select one of the following options:

  • unknown. This setting defaults to Explicit Security then fails over to Implicit Security.
  • explicit. In order to establish the SSL link, explicit security requires that the FTP client issue a specific command to the FTP server after establishing a connection. The default FTP server port is used.
  • implicit. Implicit security automatically begins with an SSL connection as soon as the FTP client connects to an FTP server. In implicit security, the FTP server defines a specific port for the client (typically 990) to be used for secure connections.

Keystore File or Keystore Security Provider

In this field, you can:

  • Enter the full path to the Keystore file, which provides certificate material to be used for SSL connection.
  • Name the Keystore Security Provider.
  • Use the configured default Keystore Security Provider by leaving it blank.

Keystore Password

This field is used to enter the password to access Keystore file. This is not required if Keystore File or Keystore Security Provider is the name of a Keystore Security Provider.

Keystore Type

This field shows the type of the Keystore. It is not needed if Keystore File or Keystore Security Provider is the name of a Keystore Security Provider.



x
Preemitter in Flow Service (com.ibi.agents.XDPreemitAgent)

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 become the output document.
  • input. Input document will become the output 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>


x
Print Emit Service (com.ibi.agents.XDPrintEmitAgent)

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

Determines whether any preemitter should be avoided.



x
Properties File Updater Service (com.ibi.agents.XDPropertyUpdater)

Syntax:

com.ibi.agents.XDPropertyUpdater

Description:

This service updates a properties file with one or more properties. The properties file can be read by the _property() iFL function, or by any appropiate tool.

Parameters:

Parameter

Description

Path

The full path to the properties file to be updated. The suffix .properties is appended if it is not included in the file name. If the file does not exist, it will be created.

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 properties themselves are user parameters, each constituting of a name/value pair. The values are evaluated by iFL before the file is updated. If the evaluation results in a null value, the property is deleted from the file.

The edges returned are listed in the following table:

Edge

Description

success

The file was updated.

fail_notfound

The file was not found and could not be created.

fail_parse

iFL could not be parsed.

fail_operation

The properties file could not be read or written.



x
Protocol Business Services

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.



x
QA Service (com.ibi.agents.XDQAAgent)

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 service outputs the document (XML or flat) in QA, ondebug, or always modes, depending on the configuration setting of the When parameter. If the QA mode is not enabled (in the Diagnostic System Properties Console Configuration page or by using the set command) and the always option is not set, then this service functions as a move service. This service is designed to work as a chained service for debugging purposes. The document and all special registers are included in the output.

The QA mode for iSM can be set by executing the following command to enable the QA mode for the configuration:

set qa on [-save]

To deactivate the QA mode, execute the following command:

set qa off [-save]

The QA mode must be enabled for the iSM configuration you are using in order for the QA service to output documents when set to QA mode.

To enable the QA service to output documents on debug, set the iSM debug special register to true. To deactivate the debug mode, set the debug special register to false.

Parameters:

Parameter

Description

Where *

File pattern to receive trace file.

When

Determines when to emit the information. Select one of the following options from the drop-down list:

  • qa (default)
  • always
  • ondebug

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 to true, the value is assumed to be in base64 notation. Only applicable when a specific write value is specified.

Starting Offset

If set, this value represents the starting offset within the data block to start the dump.

Maximum Length

If set, this this value represents the total number of bytes to dump. If not set, the dump starts from the value specified for the Starting Offset parameter to the end of the buffer.



x
Route Service (com.ibi.agents.XDRouteAgent)

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.



x
Rule Router Service (com.ibi.agents.XDRuleRouterAgent)

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.



x
Run OS Shell Command Service (com.ibi.agents.XDRunCmdAgent)

Syntax:

com.ibi.agents.XDRunCmdAgent

Description:

This service runs a system command.

Parameters:

Parameter

Description

Command*

The system command to execute. On Windows platforms, it is common to prepend cmd /C before the command.

Encoding*

The Internet Assigned Numbers Authority (IANA) character set used to decode the command result. You can select a value from the drop-down list or type an encoding name directly in the field.

CData*

Set this parameter to true if the command results are expected to be in CDATA format.

Timeout

The amount of time (in seconds) to wait before the command times out. Enter 0 to set no timeout limit.

Detach

If set to true, the command is executed in a separate thread, while the current process flow continues to execute. Since a success notification is not returned to the process flow, enabling this parameter is not recommended. As an alternative, it is recommended to use the native background processing of the operating system when possible.

Call at EOS

In a streaming environment, a short message is delivered after the last document in the stream is sent to signify the End of Stream (EOS). The Call at EOS parameter determines whether the service should be called for the EOS message. By default, this parameter is set to false.

The Timeout and Detach parameters have entirely different and somewhat mutually exclusive functions.

If defined, the Timeout parameter halts the current thread for the specified amount of time while a command is being executed or until a command result is returned. If a specified timeout value is reached and a command is still being processed, then the process flow returns the fail_timeout edge.

If the Detach parameter is set to true, then any timeout value becomes irrelevant because the command is executed in parallel by a separate thread. As a result, the process flow does not wait for command results from that thread in order to continue. The process flow resumes its execution without delay.

Example #1

The following image shows a configured value for the Command parameter in the iWay Service Manager Administration Console.

cmd /C C:\CoreFTP\coreftp.exe -s -O -site ATST1 -u c:\file\ftpin\*.*

In this example, the Run OS Shell Command service runs a command prompt command to invoke a third-party FTP program (CoreFTP) to perform a required file transfer. Similarly, you can also use this service to run the supported commands in your shell environment as needed by referring to third-party tools.

Example #2

In this example, a UNIX Perl script that takes a substantial amount of time to run must be executed by a customer. In addition, a process flow must be processed immediately, without waiting for the execution of the UNIX Perl script to be completed.

To satisfy this requirement, a Service object for the Run OS Shell Command service (XDRunCmdAgent) can be configured in a process flow where the Detach parameter is set to true, as shown in the following image.

This configuration allows the UNIX Perl script to be executed by a separate thread, while the process flow continues to run without any interruption.

Available Response Failure Edges for the Run OS Shell Command Service (XDRunCmdAgent)

During the configuration of a process flow, when you connect a Service object for the Run OS Shell Command service (XDRunCmdAgent) to an End object using the OnCustom build relation, the available line edges are provided (including response failure edges). For example:



x
Save/Restore Document Value Service (com.ibi.agents.XDSREGTreeAgent)

Syntax:

com.ibi.agents.XDSREGDocAgent

Description:

This service stores a document value in a special register (SREG), or reloads the document from a SREG.

A document is the unit of information that passes through a process flow. There can be only a single document on any line of the process flow at any time. Documents include payload and state information. State information in the document is automatically managed by the server and can be modified in a process flow using the Set Document State service (com.ibi.agents.XDDocAgent). For more information, see Set Document State (com.ibi.agents.XDDocAgent).

The logic of some process flows requires that the current document be stored so that it can be recovered later on a process flow line. The Save/Restore Document Value Service (com.ibi.agents.XDSREGTreeAgent) accomplishes this by storing the document (or its payload) in a SREG, and later recovering the document or its payload. The SREG is a user register of local scope.

Parameters:

Parameter

Description

Register name *

The name of the register that is used as a storage location for the document.

Action to take *

Determines the type of action that is taken by the service. Select one of the following values from the drop-down list:

  • Store to register {store} (default)

    The requested document or its payload is stored in the SREG.

  • Load from register {load}

    The current document is replaced by the one that is loaded in the SREG.

Level *

Determines the level of information to be saved. Select one of the following values from the drop-down list:

  • Full document {doc} (default)

    The entire document.

  • Payload {payload}

    Only the information stored in the document. The state is not affected.

Note: This operand applies only to store actions. The load action restores the document based on what was stored.

Clear *

Used only for load actions, this parameter determines if the contents of the register should be cleared when the load is completed. This parameter is set to true by default.

The edges returned are listed in the following table.

Edge

Description

success

The operation completed successfully.

fail_notfound

On a load operation, the register was not found or did not have the appropriate type of information loaded.



x
Save/Restore XML Tree Service (com.ibi.agents.XDSREGTreeAgent)

Syntax:

com.ibi.agents.XDSREGTreeAgent

Description:

This service stores XML to a special register (SREG), or reloads the tree from an SREG.

Parameters:

Parameter

Description

Target

The name of the node of the desired subtree.

Type*

The target type of the node. Select one of the following target types from the drop-down list:

  • parent
  • root (default)

Special Reg*

Name of the SREG to be assigned.

Note: Register names must conform to the requirements used for XML element names.

Store or load

Select one of the following target types from the drop-down list:

  • Store to register {store} (default)

    Saves the tree into the SREG.

  • Load from register {load}

    Sets the outbound document to the value of the SREG.

The edges returned are listed in the following table.

Edge

Description

success

Operation completed successfully.

duplicate

The node was found, but has siblings.

notfound

The node to assign was not found.



x
Set Document State (com.ibi.agents.XDDocAgent)

Syntax:

com.ibi.agents.XDDocAgent

Description:

Sets or resets the current state of the document. This includes error states, encoding and current format.

Parameters:

Parameter

Description:

Error

Sets whether the document is in error state. Documents in error state are sent to the errorTo addresses. The error state can be tested by the iFL function iserr().

  • Leave . Do not change the error state.
  • Set. Set ON the error state.
  • Reset. Set OFF the error state.

Schema Error

If the document has passed through a schema check, this state reflects whether an error was reported.

  • Leave. Do not change the error state.
  • Set. Set ON the error state.
  • Reset. Set OFF the error state.

Encoding

Sets the current encoding. Select from the list or enter the correct IANA code. The encoding is used when the document is flattened or serialized for output. This does not affect the encoding in which the document is actually carried in the document.

Output Form

Messages are carried in document in a form appropriate to their processing. Usually this is an XML tree. Use this option to change the form to either a binary byte array produced according to the encoding set, or a Unicode string. These formats are often called Flat in iSM documentation. Subsequent use of the document must expect that the message contained in the document arrives in the specified format

iFL

Applies only if output form is String. If present, this iFL expression is applied to the flattened string.

Edges:

Edges

Description

success

The operation completed successfully.

fail_parse

The iFL could not be parsed or applied to the document.



x
SFTP Emit Agent (com.ibi.agents.XDSFTPEmitAgent)

Syntax:

com.ibi.agents.XDSFTPEmitAgent

Description:

This agent allows the user to post a file on a SFTP server.

Parameters:

Parameter

Description

Host Name

DNS name (or IP address) of the SFTP server that you want to connect to. This is a required field.

Remote Port

Port number to connect to on the SFTP host site, blank for default port 22.

User Name

Name (or user ID) of the user to use to log onto the SFTP host with. This is a required field.

Password

Password for the user on the SFTP host.

Private Key

Path to the private key file for public-key authentication. Optional field if used points to the file containing the SSH key file.

Passphrase

Passphrase used to protect the Private Key. Optional field if used it is expected to be the pass phrase for the SSH key file addressed in the Private Key parameter.

Remote Site Folder

Folder or directory on the SFTP host of the server that you want to use as a starting location when you connect. Blank means the home directory of the user when logging in.

File Pattern

Output file pattern (* = timestamp), for example, *.xml,*.txt etc.

Note: The file pattern *.* is unsupported.

Retry Interval

Retry interval in seconds (allows for xxhxxmxxs format) Omit or use 0 for no retry.

Connection Retry

Attempted failed connects to SFTP server before terminating the agent with an error.

Return

Select one of the following options from the drop-down list:

  • status. A status document containing the status of the function is returned.
  • input. The document as it was passed into the agent.

Edges

Description

success

Operation completed successfully.

fail_connect

Failed to connect to SFTP host for any one of the following reasons:

  • The host name (IP) is invalid
  • The User ID is invalid.
  • The password of the user is invalid
  • The connection failed

fail_operation

Invalid parameters or other error.



x
SFTP File Operations (com.ibi.agents.XDSFTPFileOpsAgent)

Syntax:

com.ibi.agents.XDSFTPFileOpsAgent

Description:

This agent allows the user to perform various file operations to files hosted by a SFTP server.

Parameters:

Parameter

Description

Operation

Operation to perform on the file hosted by the SFTP Server. Operations supported by this agent are as follows:

  • copy. Copies the data from the file addressed by the File (from) parameter to the file named in the File (to) parameter.
  • move. Moves the data from the file addressed by the File (from) parameter to the file named in the File (to) parameter. When successfully completed the file addressed by the File (from) parameter is deleted.
  • rename. Renames the file addressed by the File (from) parameter to the file named in the File (to) parameter. When successfully completed the file addressed by the File (from) no longer exists.
  • prepend. Copies the data from the file addressed by the File (from) parameter to the beginning of the file named in the File (to) parameter.

Operation (continued)

  • append. Copies the data from the file addressed by the File (from) parameter to the end of the file named in the File (to) parameter.
  • delete. Deletes the file addressed by the File (from) parameter from the host.
  • size. Gets the size of the file addressed by the File (from) parameter from the host. The return is places in the Special Register named in the Remote Size parameter.
  • exist. Verifies that the file addressed by the File (from) parameter exists on the host.

File (from)

Name of the source file. This field may be a relative or absolute file paths, a SREG or XPath expression. This is a required field.

File (to)

Name of the destination file. Wild cards accepted. This is a required field except when operation is delete, size or exist.

Host Name

DNS name (or IP address) of the host SFTP server to connect to. This is a required field.

User Name

Name (or user ID) of the user to use to log onto the SFTP host with. This is a required field.

Password

Password for the user on the SFTP host.

Remote Port

Port number to connect to on the SFTP host site, blank for default port 22.

Remote Size

Name of the Special Register designated to hold size. This field is required when operation is size.

Out Document

Document returned by operation (bad input defaults to result).

result. Results of the requested operation; in the case of copy, move, rename, delete, size and exist the status document containing the status of the function is returned.

The functions prepend and append result in the file data being returned. This data will be the same as the data found in the file addressed by the File (to) parameter.



x
SFTP Read Agent (com.ibi.agents.XDSFTPReadAgent)

Syntax:

com.ibi.agents.XDSFTPReadAgent

Description:

This agent allows the user to read files hosted on a SFTP server.

Parameters:

Parameter

Description

File Name Tag

Name of the XML element from the input document in which to find the file name. This is a required field.

Enclose Tag

Name of the XML element in which to enclose the data of the filewhen read. Optional field if omitted, the data read becomes the output document. If used, the data read from the file is embedded in the input document under the Enclosing Tag element name.

Base Path

Optional directory entry to be pre-pended to the incoming name referenced by the File Name Tag parameter is not absolute.

Input Data Format

Format of the input of the data file, the default is flat file.

  • Flat. Flat file. The file data is non-XML.
  • XML. XML document. The data of the file is in XML format.

Host Name

DNS name (or IP address) of the SFTP server that you want to connect to. This is a required field.

Remote Port

Port number to connect to on the SFTP host server, blank for default port 22.

User Name

Name (or user ID) of the user to use to log onto the SFTP host with. This is a required field.

Password

Password for the user on the SFTP host.

Private Key

Path to the private key file for public-key authentication. Optional field if used points to the file containing the SSH key file.

Passphrase

Passphrase used to protect the Private Key. Optional field if used. It is expected to be the pass phrase for the SSH key file addressed in the Private Key parameter.

Encoding

Character set encoding to be performed on the input.

  • asis. As is. Do not encode as base 64.
  • base64. File contains binary data and as such should be encoded as base 64

Delete After Read

Flag to determine whether to delete the file after the read.

  • false. Do not delete the file.
  • true. Immediately after the read, delete the file.
  • trans. This is a transactional delete. The file is not deleted unless the flow ends in success.

Edges:

Edge

Description

success

Operation completed successfully.

fail_parse

Failed to properly parse the input parameters of the agent.

fail_connect

Failed to connect to SFTP host for any one of the following reasons:

  • The host name (IP) is invalid.
  • The User ID is invalid.
  • The password of the user is invalid.
  • The connection failed.

fail_operation

Invalid parms or other error.

fail_notfound

The file name in the File Name Tag parameter does not exist on the SFTP host.

fail_delete

Failed to delete the file either after the initial read, or when the transaction successfully completed.



x
Snip Service (com.ibi.agents.XDSnipAgent)

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>


x
Sonic Emit Service (com.ibi.agents.XDSonicEmitAgent)

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 it is 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:

  • queue
  • topic

Output Message Type

The output message type. Select one of the following options from the drop-down list:

  • bytes
  • text
  • dynamic

Ackmode

The acknowledgement mode, or transactional. Select one of the following options from the drop-down list:

  • auto
  • dupsok
  • client
  • trans

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:

  • status. Status document will be the output document.
  • input. Input document will become the output document.


x
Sonic Queue Browser Service (com.ibi.agents.XDSonicBrowseAgent)

Syntax:

com.ibi.agents.XDSonicBrowseAgent

Description:

This service browses messages using the Sonic version of JMS from a queue or topic. It does not delete the message from the queue For more information on Sonic, see the Queuing Adapters chapter in the iWay Service Manager Protocol Guide.

Parameters:

Parameter

Description

Queue Name

The name of the receiver queue.

Broker URL

URL of Sonic Broker. Broker url [protocol://]host:port (can be comma separated list used for failover). Protocols are TCP and HTTP.

User ID

User ID for challenges.

Password

Password for challenges

Filter

Selection Filter

Output Format

How the output is provided. Select one of the following values from the drop-down list:

  • Status
  • Xml
  • Asread

Load balance

Load balance among brokers. Select one of the following values from the drop-down list:

  • true
  • false

Fault tolerant

How the client is fault tolerant or not. (For example, should there be an attempt to recover from a connection failure?) Select one of the following values from the drop-down list:

  • true
  • false

Sequential

When multiple brokers are listed, they are used sequentially or randomly. Select one of the following values from the drop-down list:

  • true
  • false

Reconnect Fault Timeout

In seconds, how long to wait before trying to connect again.

Initial Connect Timeout

In seconds, how long to wait after failing initially, before trying to connect again.



x
Sonic Read Service (com.ibi.agents.XDSonicReadAgent)

Syntax:

com.ibi.agents.XDSonicReadAgent

Description:

This service reads data using the Sonic version of JMS from a queue or topic. For more Information on Sonic, see the Queuing Adapters chapter in the iWay Service Manager Protocol Guide.

Parameters:

Parameter

Description

Name

The name of the queue or topic to be read.

Broker URL

URL of Sonic Broker. The format of the URL is Protocol://host:port.

User ID

User ID for challenges.

Password

Password for challenges.

Acknowledgement

Acknowledgment mode, or transactional. Select one of the following options from the dropdown list:

  • Auto Acknowledge. The session automatically acknowledges the client receipt of a message by successfully returning from a call to receive (synchronous mode) or when the session message listener successfully returns (asynchronous mode).
  • Client Acknowledge. An explicit acknowledge on a message acknowledges the receipt of all messages that were produced and consumed by the session that gives the acknowledgement. When a session is forced to recover, it restarts with its first unacknowledged message.
  • Dups OK Acknowledge - The session slowly acknowledges the delivery of messages to consumers, possibly allowing some duplicate messages after a system outage.


x
SP Router Service (com.ibi.agents.XDSPRouter)

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.



x
Split Service (com.ibi.agents.XDSplitAgent)

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.



x
Split To MQ Service (com.ibi.agents.XDSplitToMQAgent)

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:

  • status. Status document will be the output document.
  • input. Input document will become the output document.

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.



x
SQL Batch Row Insert Service (com.ibi.agents.XDSQLInsert)

Syntax:

com.ibi.agents.XDSQLInsert

Description:

The SQL Batch Row Insert service is designed to be used within an iteration process or a process that is being run from a splitting preparser. The batch inserter uses SQL batch operations where supported to update the database efficiently. The actual performance can be influenced by the blocking factors configured for this service and the blocking factors implemented on the database.

The inserts will be queued and issued to the database in groups, depending on the configuration. Any outstanding inserts will be issued upon successful completion of the process flow. The process flow must be configured to operate under local channel transaction control.

When the SQL Batch Row Insert service is used in an iteration process, your application process flow must inform the service that the iteration has completed. Otherwise, the SQL Batch Row Insert service will not know that the (current) batch must be sent to the database. This is true regardless of whether your configuration requests sub-batches. The iterators (for example, XML Split Iterator) provide a special service that must be configured to cause this notification to be made. This service takes the form of an end of iteration message that passes out of the iterator on the end_iteration edge. This is a custom edge that you must configure in your process flow. It should pass into the SQL Batch Row Insert service through a Junction object. The example in this section shows how to configure such a process flow. Failure to provide an end of iteration message in the insert loop will result in a loss of insertions into the database.

Parameters:

Parameter

Description

Output document type

Determines whether this service generates a status document or passes the input document to the process flow. Select one of the following options from the drop-down list:

  • status
  • input

By default, status is selected.

Destination

Output Provider *

The name of a database provider that has been configured. The insert operation will be performed on this database.

Output SQL *

The Data Manipulation Language (DML) statement used to perform the insert into the database. Use the ?name parameter format that is used for the SQL service.

Batch Size

The number of statements in a batch. Enter zero (0) if all inserts are to be considered as one batch. If a value is entered, sub-batches may result, where commits are performed on the batch when the number of inserts reaches the specified value. The default batch size is zero (0).

Fail First

If set to true and the first row of the first batch fails, then the operation is terminated with a fail_insert edge. This usually indicates that the database cannot be reached or an insert cannot be performed for some reason. If this is omitted, then the generated status document will indicate which rows were successfully inserted. By default, false is selected.

Omit Test

Performs the specified iFL operation. If the operation returns a result as true, then the row is not inserted into the database.

Out Encoding *

The Internet Assigned Numbers Authority (IANA) character set to be used for the output database. Select one of the following character sets from the drop-down list or enter an encoding name:

  • Leave
  • Platform
  • US-ASCII
  • CP037
  • ISO-8859-1
  • UTF-8
  • UTF-16BE
  • UTF-16LE
  • UTF-16

By default, Leave is selected.

The edges returned by the SQL batch row insert service are listed in the following table.

Edge

Description

success

The insert was batched for execution. If the intermediate batch size was reached, then the batch operation was completed successfully.

cancelled

A cancel was recognized.

fail_parse

The parameters could not be parsed.

fail_connect

A connection to the provider failed.

fail_connect_destination

A connection to the output database failed.

fail_operation

The insert operation failed to execute for some reason other than the error that is reported by the database. For example, the insert statement could not be formatted.

fail_insert

Failed on the actual commit if the number of invalid inserts exceeded a threshold value, or if configured, the first row fails.

fail_nullability

The database reported a nullability failure.

In addition to these edges, SQL Code edges are available as described in SQL Service (com.ibi.agents.XDSQLAgent).

Example:

In this scenario, a database must be updated with one row for each item in an incoming XML message. An example might be an EDI message denoting shipped packages.

The iterator could be an XML Split Iterator to present a single set of values further into the process flow. The SQL Insert operation formats an insert statement and adds it to the batch. The operation then passes control to the loop (a move service) that passes control back for the next row. The SQL insert service could have anchored the loop, but using a move service is a common idiom used to make the process flow easier to read.

When the last row being extracted by the iterator has been passed into the loop, the iterator sends the end of iteration message on the end_iteration edge. This edge can be wired into the Junction object that leads to the inserter. Naturally, other logic can also appear on either edge from the iterator. When control returns to the iterator, control is passed to the End node. As the process flow ends, the database commit is performed to insert the rows into the database. If the process is running in transactional mode, then the commit will be performed on a successful completion of the process flow. If the process is not running in a transactional mode, then the commit will be performed immediately.

If you have configured to commit on sub-batches, then it is possible that a transactional rollback will not avoid updating the database. Also, the behavior in the event of an error may differ amongst databases and drivers themselves.

For very simple types of insert operations, where no processing is to be done on the message other than simply inserting it, you can wire the end_iteration and the success edge to the same relation edge. The SQL Batch Row Insert service will sort out the messages.

If you intend to pass the message through an operation before the insert, you must separate the edges so that the intermediate services (for example, the Transform object in the following image) need not see the end of the iteration message.

The status document includes the error information. The type and specific error descriptions vary depending upon the capabilities of the specific JDBC driver currently in use.

<emitstatus status="0">
   <protocol>XDSQLInsert</protocol>
   <parms>
      <parm name="col1">100</parm>
      <parm name="col2">100</parm>
      <parm name="col3">aa</parm>
      <parm name="col4">02/01/2013</parm>
      <parm name="failcount">3</parm>
      <parm name="failfirst">false</parm>
      <parm name="failkey">100</parm>
      <parm name="outbatchsize">2</parm>
      <parm name="outencoding">leave</parm>
      <parm name="outomit"/>
      <parm name="outprov">LocalSQLServer</parm>
      <parm name="outsql">insert into TestHWM3 values (?col1, ?col2, ?col3, ?col4)</parm>
      <parm name="return">status</parm>
      <parm name="subcommit">false</parm>
   </parms>
   <timestamp>2013-02-06T17:02:11.179Z</timestamp>
   <status>0</status>
   <msg>after final batch</msg>
   <channel>ExecProcess</channel>
   <nodename>agent_Service</nodename>
   <batchstatus rowsread="3" batches="2" failures="1" omits="0">
      <fails count="1">
         <fail row="-1" key="100" text="SQLException while executing batch.  Unable to determine which row caused it: Error converting data type nvarchar to bigint."/>
      </fails>
   </batchstatus>
</emitstatus>

Top of page

x
SQL Service (com.ibi.agents.XDSQLAgent)

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 RDBMS 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 Data Manipulation Language (DML) 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.

Use JNDI *

If set to true, a connection from a data source accessed through JNDI is used. Otherwise, connect directly using JDBC driver manager. When set to true, the Pool Connections configuration parameter should not be used, and pooling is handled in the JNDI data source manager.

JNDI Name

JNDI name for the requested data source. To use an iWay JDBC provider, specify as jdbc/provider. This is required if you are using JNDI.

JNDI Factory

JNDI initial context factory class. Leave blank for default.

Transaction Isolation Level

Transaction isolation level to be set if possible.

These are the standard transaction Isolation levels defined in the ANSI/ISO SQL standard. For more information on these settings, see the DBMS, JDBC, or ODBC documentation. Based on standard terminology, the following transaction isolation levels can be selected:

  • As Is. Does not change the transaction isolation level. The default is accepted, as it is found on the connection.
  • Read Uncommitted. Allows reading of a record that may be rolled back later. Dirty reads, nonrepeatable reads, and phantom reads are possible.
  • Read Committed. Dirty reads are not possible, but nonrepeatable reads and phantom reads are possible.
  • Repeatable Read. Dirty reads and nonrepeatable reads are not possible, but phantom reads are possible.
  • Serializable. This is the highest level of isolation. Phantom reads are not possible. Other users are prevented from updating or inserting rows into the data set until the transaction is completed.

For more information on the terminology related to transaction isolation, see Transaction Isolation Terminology.

Pool Connections

If set to true, connections are pooled. The default value is false.

Applies to non-local transactions only. This pools connections within the flow itself. Connections can be reused across messages, depending on the commit strategy and the specifics of the database being used. If used with JNDI data sources, this local service pooling may inhibit optimum use of any JNDI data source pooling and connection management. In most cases, the Pool Connections parameter for this service should not be set when using JNDI data sources.

Pooled connections are identified by connection URL and user ID. The pooled connection is shared by all instances of this service either within the channel as a whole or within a single execution (worker) thread. To pool at the worker level, set the Need Commit parameter to true.

In local transactions, connections are always shared within the transaction.

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

Determines how commits should be performed on completion. Select one of the following options from the drop-down list:

  • Immediate. Issue a commit immediately upon completion of the Data Manipulation Language (DML) execution, regardless of whether or not the process is part of the local transaction. The connection is not pooled for commit purposes.
  • Transactional. If the process is running as a local transaction, the service will join that transaction. In this case a commit or rollback will be performed on the connection depending on the completion status of the process flow. If the process is not running in a local transaction, this defaults to the Immediate option.
  • Never. No commit is ever issued by the service for this statement. This is the default for a select statement. For a DML that requires a commit, the process flow is responsible for committing the connection by use of DML in another service. This gives the transaction complete control and responsibility for the commit or rollback. A commit or rollback is not executed by the use of the Commit service or by the transactional status of the process flow.
  • Force. Always issue a commit before closing the connection. Use only in non-transactional mode. Setting the Force option is required only for certain JDBC drivers that require a commit in order to close all resources. For example, some DB2 drivers will generate an error if a connection is closed without a commit. For other drivers, issuing a commit with no outstanding work can generate an error. Users are cautioned to only use the Force option if it is required by your driver and application design.
 

Note: Prior to iSM version 6.1.4, the Boolean values true (Immediate) and false (Transactional) were provided as options for this parameter. These internal settings continue to perform as in previous releases.

Users are cautioned that commits are issued on connections, rather than statements. Selecting the Never option delegates application responsibility for the connection to the application rather than the transaction manager of the process flow. Failure to execute an SQL service with never having a COMMIT WORK or ROLLBACK WORK (as appropriate for the specific database), will leave the connection uncommitted.

For DML-based statements with the Never option selected, you will require pooling enabled to insure that the TCL (Transaction Control Language) affects the proper connection. Pooling is automatic when using JNDI-based connections.

Timeout

Number of seconds this service will wait for an operation to complete. A value of 0 indicates 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.

Sibling documents are full documents that are chained to the emitted document from the service. They can be accessed by use of an iterator, and will be emitted automatically if they exist for the final document that is output from the process flow.

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: through SQL construction or through 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.

xLOB Handling

Determines how blobs and clobs should be handled. Select one of the following options from the drop-down list:

  • none (default)
  • external
  • inline

Want Generated Keys

If set to true, generated keys on a non-bound INSERT statement are returned if available from the database in the 'iway.getkey' register. The default value is false.

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.

JDBC Connection Properties

Data Source URL *

The URL to reach the data source.

JDBC Driver *

The JDBC driver to use.

User ID

Default user ID for the connection.

Password

Default password for the connection.

Passing Values to DML

When you create the SQL DML statement, you can use named tokens to represent the values to be used in the statement. For example:

Select name, address from addresses where zip='?zipval' and state = '?stateval'

Then in the user properties, represent the values as name/value token pairs, as listed in the following table.

Name

Value

zipval

_xpath(/root/user/zip)

stateval

_sreg(state)

The _qval() function can be used to obtain a null value. For example:

Insert into nametable (first,middle,last) values('?first',?middle,'?last')

Assuming that the first and last values cannot be null, use the following name/value token pairs to represent the values.

Name

Value

first

_sreg('firstname')

middle

_qval(_sreg('middle'),'\','empty')

last

_sreg('lastname')

If a middle name is not present, then the text NULL is used in the SQL. Otherwise, the quoted string of the middle name is used.

Edges:

The SQL service (and by extension the SQL object used in process flows) returns edges that can be used to analyze execution results at any required level of granularity. Any SQL service failure returns a fail_operation edge, but a duplicate or a missing result can also be used. At the finest granularity, any specific XOPEN code (or set of codes) can be tested.

The edges returned by the SQL service (com.ibi.agents.XDSQLAgent) are listed in the following table.

Edge

XOPEN

Description

success

00000

The operation was successful. For SELECT operations, success can be considered as the join of found and notfound edges.

found

00000

Rows were returned. Always issued in conjunction with the success edge. You may wire found or success edges depending on your application requirements.

notfound

00000

No rows were returned. You may wire notfound or success edges depending on your application requirements.

Note: The notfound edge indicates a successful operation, as distinct from the fail_notfound edge, which indicates that some components, such as a table or column, is not found in the database.

duplicate

3C000, 42S01, 42S11, 42S21

Some item is duplicated, for example, insert to an existing unique key.

fail_notfound

42S02, 42S12, 42S22

A component required in the DML, such as a table or column, was not found.

fail_operation

The SQL operation was not successful.

cancelled

A cancellation through a flow timeout.

fail_timeout

HYT00, HYT01, 40001

The operation times out on the channel.

fail_parse

Parameters cannot be parsed in iFL.

fail_syntax

4200, 22007

The SQL had syntax errors as reported by the DBMS.

fail_other

The SQL operation has failed for a reason that is not included in any other edge (for example, fail_notfound). You can use the sqlcode special register for further analysis.

<xopen code>

all

Specific XOPEN code. To use this edge, you must define your own custom edge in iIT or iWay Designer.

For more information on SQL Service edge returns sorted by XOPEN code, see SQL Service Edge Returns Sorted by XOPEN Code.

The following table lists the Special Register (SREG) set:

SREG

Description

sqlcount

Number of rows returned for a SELECT operation, or the number of rows affected by an UPDATE or DELETE operation.

iway.genkey

Generated key associated with an INSERT operation, if appropriate to the database.

sqlcode

The XOPEN code for any unsuccessful operation.

Example:

An SQL Select statement returns a result set as an XML document. The service offers three formats:

Field format is designed for efficient XPath. Within each row, the fields are presented as children. For example:

<?xml version="1.0" encoding="ISO-8859-1" ?><iway>
 <response totalrows="3" totalupdate="0">
  <cncresult>
   <result format="field">
    <resultset rowcount="3">
     <colinfo>
      <col label="LNAME" length="8" offset="0" type="1" typename="char">LNAME</col>
      <col label="FNAME" length="8" offset="8" type="1" typename="char">FNAME</col>
      <col label="SSN" length="10" offset="16" type="2" typename="numeric">SSN</col>
      <col label="BDATE" length="11" offset="26" type="93"
      typename="tstamp">BDATE</col>
      <col label="SALARY" length="8" offset="37" type="2"
      typename="numeric">SALARY</col>
     </colinfo>
     <row>
      <LNAME type="1" typename="char">NARAYAN </LNAME>
      <FNAME type="1" typename="char">RAMESH  </FNAME>
      <SSN type="2" typename="numeric">666884444</SSN>
      <BDATE type="93" typename="tstamp">1952-09-15 00:00:00</BDATE>
      <SALARY type="2" typename="numeric">38000</SALARY>
     </row>
     <row>
      <LNAME type="1" typename="char">SMITH   </LNAME>
      <FNAME type="1" typename="char">JOHN    </FNAME>
      <SSN type="2" typename="numeric">123456789</SSN>
      <BDATE type="93" typename="tstamp">1955-01-09 00:00:00</BDATE>
      <SALARY type="2" typename="numeric">30000</SALARY>
     </row>
     <row>
      <LNAME type="1" typename="char">ZELAYA  </LNAME>
      <FNAME type="1" typename="char">ALICIA  </FNAME>
      <SSN type="2" typename="numeric">999887777</SSN>
      <BDATE type="93" typename="tstamp">1958-07-19 00:00:00</BDATE>
      <SALARY type="2" typename="numeric">25000</SALARY>
     </row>
    </resultset>
   </result>
  </cncresult>
  <timestamp>TIME-QA-QA QA:QA:QA</timestamp>
  <execstatus>0</execstatus>
 </response>
</iway>

Column format is often effective for transformations. For example:

<?xml version="1.0" encoding="ISO-8859-1" ?><iway>
 <response totalrows="3" totalupdate="0">
  <cncresult>
   <result format="column">
    <resultset rowcount="3">
     <colinfo>
      <col label="LNAME" length="8" offset="0" type="1" typename="char">LNAME</col>
      <col label="FNAME" length="8" offset="8" type="1" typename="char">FNAME</col>
      <col label="SSN" length="10" offset="16" type="2" typename="numeric">SSN</col>
      <col label="BDATE" length="11" offset="26" type="93"
      typename="tstamp">BDATE</col>
      <col label="SALARY" length="8" offset="37" type="2"
      typename="numeric">SALARY</col>
     </colinfo>
     <row>
      <column label="LNAME" name="LNAME" type="1" typename="char">NARAYAN </column>
      <column label="FNAME" name="FNAME" type="1" typename="char">RAMESH </column>
      <column label="SSN" name="SSN" type="2" typename="numeric">666884444</column>
      <column label="BDATE" name="BDATE" type="93"
      typename="tstamp">1952 09-15 00:00:00</column>
      <column label="SALARY" name="SALARY" type="2"
      typename="numeric">38000</column>
     </row>
     <row>
      <column label="LNAME" name="LNAME" type="1" typename="char">SMITH </column>
      <column label="FNAME" name="FNAME" type="1" typename="char">JOHN </column>
      <column label="SSN" name="SSN" type="2" typename="numeric">123456789</column>
      <column label="BDATE" name="BDATE" type="93"
      typename="tstamp">1955-01-09 00:00:00</column>
      <column label="SALARY" name="SALARY" type="2"
      typename="numeric">30000</column>
     </row>
     <row>
      <column label="LNAME" name="LNAME" type="1" typename="char">ZELAYA </column>
      <column label="FNAME" name="FNAME" type="1" typename="char">ALICIA </column>
      <column label="SSN" name="SSN" type="2" typename="numeric">999887777</column>
      <column label="BDATE" name="BDATE" type="93"
      typename="tstamp">1958-07-19 00:00:00</column>
      <column label="SALARY" name="SALARY" type="2"
      typename="numeric">25000</column>
     </row>
    </resultset>
   </result>
  </cncresult>
  <timestamp>TIME-QA-QA QA:QA:QA</timestamp>
  <execstatus>0</execstatus>
 </response>
</iway>

Row format was originally designed for extremely fast retrieval, but your application is responsible for extracting information for the rows through string manipulation. This format matches the format returned by the EDA API of the Full Function Server, and should only be used with that database. iWay Software does not recommend this format for most general applications.

<?xml version="1.0" encoding="ISO-8859-1" ?><iway>
 <response totalrows="3" totalupdate="0">
  <cncresult>
   <result format="std">
    <resultset rowcount="3">
     <colinfo>
      <col label="LNAME" length="8" nullable="1" offset="0" type="1"
      typename="char">LNAME</col>
      <col label="FNAME" length="8" nullable="1" offset="8" type="1"
      typename="char">FNAME</col>
      <col label="SSN" length="10" offset="16" type="2"
      typename="numeric">SSN</col>
      <col label="BDATE" length="11" nullable="1" offset="26" type="93"
      typename="tstamp">BDATE</col>
      <col label="SALARY" length="8" offset="37" type="2"
      typename="numeric">SALARY</col>
     </colinfo>
     <row>NARAYAN RAMESH  666884444 1952-09-15 00:00:0038000   </row>
     <row>SMITH   JOHN    123456789 1955-01-09 00:00:0030000   </row>
     <row>ZELAYA  ALICIA  999887777 1958-07-19 00:00:0025000   </row>
    </resultset>
   </result>
  </cncresult>
  <timestamp>TIME-QA-QA QA:QA:QA</timestamp>
  <execstatus>0</execstatus>
 </response>
</iway>


x
SREG Service (com.ibi.agents.XDSREGAgent)

Syntax:

com.ibi.agents.XDSREGAgent

Description:

This service sets one or more Special Registers (SREGs) under program control. The SREGs can be set to any of the supported scopes (Message, Flow, or Thread) and can belong to any defined category (Header, User, or Document).

Setting SREGs above the Message scope requires specification of a lock to avoid race conditions in a multithreading situation.

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:

  • User. This variable is part of the process flow logic and is the most commonly used type.
  • Document. This variable is specific to the incoming document, such as the name of the input document.
  • Header. This variable is part of the document routing information, such as an HTTP header or an IBM MQSeries descriptor.
  • Metric. This variable is used to maintain statistics at the server or channel (protocol) level. For example, the maximum value of transactions received or the number of errors of a certain type.
  • Delete. This variable indicates the removal of the register set that is used in a process flow.

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:

  • Message
  • Flow
  • Thread
  • Channel
  • Server

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.

Channel-scoped variables are at the protocol level and can be used in a metric to keep information across workers. Registers with a channel scope require a lock.

Server-scoped variables are above the channel level and can keep metrics across the entire server. Registers with a server scope require a lock.

Lock

A lock is a name that applies to one or more metrics being updated or referenced as a whole. This allows synchronous values to be retained. For example, if metrics A and B are updated, it is a good practice to keep their settings in the same relationship to one another. You do not want to change them in such a way that metrics A and B are no longer related.

Automatic evaluation

Causes contents to be evaluated to hold functions. Select one of the following options from the drop-down list:

  • true. Evaluates an SREG every time it is retrieved.
  • false (default). Evaluates an SREG only once, as the value is stored.

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:

As of iSM Version 6.1.7, the SREGs are evaluated in the order they are defined in the pane. Therefore, one SREG can refer to the value in another. For example:

one

_xpath(/root/coms/@port)

two

_sreg(one)+1

three

_sreg(two)+1

Evaluation ordering applies only when using a Service object of type SREG Agent in a process flow.

The following SREG types are supported:

Note: Register names must conform to the requirements used for XML element names. The names are further restricted for HDR registers if the register will be used to form a message header for a protocol that itself has restricted character conventions. Use of the namespace designator '.' is supported for registers in which such namespaces are meaningful.



x
SREG Insert Service (com.ibi.agents.XDSregInsertToDocAgent)

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 can 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>


x
SREG Namespace Service (com.ibi.agents.XDSREGNamespaceAgent)

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:

  • copy (default)
  • move
  • delete
  • exist

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.

Note: Namespace names must conform to the requirements used for XML element names. The names are further restricted for HDR registers if the namespace and the register name, when combined, will be used to form a message header for a protocol that itself has restricted character conventions. In many cases the namespace portion of the name will be removed for use and then only the register name restrictions will apply.



x
SWIFT Out Report Service (com.ibi.agents.SWIFTOutReportAgent)

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.



x
SWIFT Transform Service (com.ibi.agents.XDSWIFTTransformAgent)

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.



x
SWIFT Validation Service (com.ibi.agents.XDSWIFTValidationReportAgent)

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.



x
SWIFT XML Transform Service (com.ibi.agents.XDIWAYSWIFTXMLTransformAgent)

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.



x
TCP Emit Service (com.ibi.agents.XDTCPEmitAgent)

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:

  • NONE. Sending XML.
  • MSB. 4-byte binary length prepended.
  • ASC. 6-byte ASCII length prepended.
  • CLOSE. Send non-XML and close the socket.

Return

Select one of the following options from the drop-down list:

  • status. Status document will be the output document.
  • input. Input document will become the output document.
  • swap. As input, but replace written data in the source nodes with the file name to which the data was written.

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 image shows 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 image 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.



x
TIBCO RV Emit Service (com.ibi.agents.XDTIBRVEmitAgent)

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:

  • true
  • false (default)

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:

  • Opaque (default)
  • String
  • TibrvMsg
  • TibrvXml

Preemitter

Determines whether any preemitter should be avoided. Select one of the following options from the drop-down list:

  • true (default)
  • false

Return document

Select one of the following options from the drop-down list:

  • status (default). Status document will be the output document.
  • input. Input document will become the output document.


x
Trace Message Writer Service (com.ibi.agents.XDTraceAgent)

Syntax:

com.ibi.agents.XDTraceAgent

Description:

This service writes a message to the trace log of the system. The trace log accumulates messages to record the progress of activity within the server. Usually the trace log is used for debugging purposes.

Parameters:

Parameter

Description

Trace Level

The trace level at which the message is written to the trace log. Select one of the following trace levels from the drop-down list:

  • Error
  • Warn
  • Debug

Message

The message to be written to the trace log.

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 edges returned are listed in the following table.

Edge

Description

success

The line was successfully sent to the trace system.

fail_parse

iFL used in the parameters was invalid.

The trace message is written to the trace log at the error or debug level. The trace system must be configured to accept the message on the issued level. Users must be made aware that the use of a trace log can adversely affect server performance.

Caution: The trace log is not the transaction log, which can hold messages regarding operations within the server. Messages can be written to the transaction log using the Activity Log Entry service (XDXALogEvent) and the Activity Log Business Error Message service (XDXALogBizErr). While trace messages are usually free format and designed to help debug a problem, the XALog (transaction log) is more structured and often has externally imposed security, event code, and format constraints.



x
Transform Service (com.ibi.agents.XDTransformAgent)

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

The type of document to reach this service. The actual input format must match the type that is declared. Select one of the following options:

  • All Types (default). Any payload received by the service is passed to the transformation. Streams are not accepted.
  • Flat. A non-XML payload is expected.
  • XML. An XML payload is expected. It does not include an iWay error status document, which will be rejected.
  • iWay Error. Only an iWay error status document will be accepted. Other payloads will be rejected.
  • All XML. Any XML payload (including the iWay error format) is accepted. Only flat formats are rejected.

Document type

Type of output document being emitted by the transform. Select one of the following options:

  • XML (default)
  • Flat

Engine

Type of transformation. Select one of the following options:

  • iWay Transformer (default)
  • XSLT

Trim

Determines whether data should be trimmed before transformation. By default, this parameter is set to false.

Error Status Output

Sets the output format that is emitted by the service if an error occurs. Select one of the following options:

  • status (default). Sets the output format as an error status document.
  • input. Sets the output format as the input document.

Call at EOS

In a streaming environment, EOS (End of Stream) is the short message that is sent after the last document is processed, which signifies the EOS. This parameter determines whether this service should be called for the EOS message. By default, this parameter is set to false.

Error Masks

Input Side

If set to true, all non-fatal errors that occur during transform input parsing are suppressed. By default, this parameter is set to false.

Output Side

If set to true, all non-fatal errors that occur during transform output parsing are suppressed. By default, this parameter is set to false.

If transformation is not able to finish or if there are function errors in the output document (TRANSFORM_FUNCTION_ERROR), the agent returns an error status document if Error Status Output parameter and follows the fail_transform edge instead.

The edges returned are listed in the following table.

Edge

Description

success

The transformation process completed successfully.

fail_transform

The transformation process completed with errors.

fail_format

The input document format does not match the expected input transform format.

The following is an example of an error status document that is returned:

<?xml version="1.0" encoding="UTF-8" ?>
<error status="1">
<msg>Transform returned function errors</msg>
<parms>
  <parm name="engine">iway</parm>
  <parm name="inmask">false</parm>
  <parm name="intype">all</parm>
  <parm name="outmask">false</parm>
  <parm name="outtype">flat</parm>
  <parm name="shouldTrimParm">false</parm>
  <parm name="stat">status</parm>
  <parm name="transform">case_61862517_FWFOut_reg</parm>
  <parm name="wanteos">false</parm>
</parms>
<timestamp>2011-01-21T22:03:14.214Z</timestamp>
<status>1</status>
<channel>ExecProcess</channel>
<nodename>agent_FWF_JDBC_Xform</nodename>
<functionerrors>
<item>[FUNCTION] Function JDBCLOOKUP error: com.iwaysoftware.transform.common.function.FunctionException: JDBC driver com.mysql.jdbc.Driver can not be loaded. Detail: com.mysql.jdbc.Driver</item>
</functionerrors>
</error>


x
Tree Evaluator Service (com.ibi.agents.EvalWalk)

Syntax:

com.ibi.agents.EvalWalk

Description:

This service passes an incoming XML tree and applies iFL evaluation to all or selected nodes of the tree. Element values and their attributes are evaluated.

Parameters:

Parameter

Description

Filter Expression

An XPath expression (optional) used to select items to be evaluated. If no value is provided, then all element values and their attributes will be evaluated.

XML Namespace Map Provider

Provider used to map between an XML namespace prefix and a namespace URI. If no value is provided, then elements in the document will use the default namespace.

XPath Syntax *

Determines the implementation of XPath that should be used. Select one of the following implementations from the drop-down list.

  • Default. Selects the syntax level as specified in the General Settings section of the iSM Administration Console.
  • iWay abbreviated syntax. iWay implementation is fast, but has limited language support.
  • Full XPath 1.0 syntax. XPath 1.0 provides full language support, but is slower.

The edges that are returned by this service are listed in the following table.

Edge

Description

success

The incoming XML tree has been evaluated.

fail_parse

The service configuration or the incoming XML tree contains invalid iFL.

fail_operation

The incoming document is not in XML format, or the required namespace provider cannot be located.

Example 1:

The following node, if selected for evaluation:

<node1/ATR1="_ISERROR()">SREG(ip)</node1>

might become:

<node1/ATR1="false">123.45.678.910</node1>

Example 2:

The following node, if selected for evaluation:

<Test><_sreg(iwayhome)</Test>

might become:

<Test>c:/iway61</Test>

Example 3:

Use XPath to identify a subtree within the incoming document to be evaluated:

/root/interesting_part//*


x
Unmarshal Service (com.ibi.agents.XDUnmarshallAgent)

Syntax:

com.ibi.agents.XDUnmarshallAgent

Description:

A message that is marshaled by the Marshal service (com.ibi.agents.XDMarshallAgent) is automatically unmarshaled by the server, so that no application action is required. In some cases, the marshaled message must be specifically unmarshaled. These include the use of encryption in the marshaling process and the acquisition of a marshaled message through a channel other than a listener.

Note: This service is packaged with the iwgateway.jar extension.

Parameters:

Parameter

Description

Use Encryption

Determines whether the marshaled message will be encrypted. A secure AES cipher is used and must be deciphered by the receiver using the Unmarshal service. Automatic unmarshaling cannot be performed on an encrypted message.

AES Key

A cipher key shared between the marshal and unmarshal services. Commonly, this is specified as a special register (SREG) or from a properties file.

The edges that are returned by this service are listed in the following table.

Edge

Description

success

The message has been unmarshaled and is ready for sending.

fail_operation

The message could not be decompressed, decrypted, or unmarshaled.



x
Update Correl Entry Service (com.ibi.agents.XDUpdateCorrelEntryAgent)

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.



x
Web Service Client Service (com.ibi.agents.XDWSClientAgent)

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

If set to true, the SOAP envelope from the response document is removed. By default, this parameter is set to false.

For more information on the behavior and usage of this parameter, see the description that follows this table.

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.

Strip SOAP Envelope Parameter

The Strip SOAP Envelope parameter moves namespaces to the payload node when a SOAP response is received. For example, assume that the target web service returns the following message to the service:

<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:somens="http://somens.com">
      <SOAP-ENV:Body>
          <somens:payload>Hello</somens:payload>
      </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

If set to true, then the Strip SOAP Envelope parameter cuts the child of the <SOAP-ENV:Body> element, which in this example, is <somens:payload>. The result is not, by itself, a well-formed XML document because the xmlns attribute that declares the somens namespace prefix is lost during the cut.

Enabling the Strip SOAP Envelope parameter causes the service to ascend the XML tree looking for namespace declarations and copies these attributes to the payload node. For example, after the SOAP envelope is removed, the response document has the following structure:

<somens:payload xmlns:somens="http://somens.com">Hello</somens:payload>


x
X12 Validation Service (com.ibi.agents.XDX12ValidationReportAgent)

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.


Top of page

x
XA Log Inquiry By Context Service (com.ibi.agents.XDXALogInquiryByContextAgent)

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.



x
XA Log Inquiry By Date Service (com.ibi.agents.XDXALogInquiryByDateAgent)

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.



x
XA Log Inquiry By Partner Service (com.ibi.agents.XDXALogInquiryByPartnerAgent)

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.



x
XA Log Inquiry By Transaction ID Service                          (com.ibi.agents.XDXALogInquiryByTIDAgent)

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.



x
XA Log Message Service (com.ibi.agents.XDXALogMsg)

Syntax:

com.ibi.agents.XDXALogMsg

Description:

This XA Log Message service writes a message to the transaction activity log system.

The message is handled by the activity log system accordingly for the installed driver. In iWay Business Activity Monitor (BAM), the message will appear in the transaction display.

Parameters:

Parameter

Description

Message level

Determines the type of message that will be written to the log at the selected trace level. Select one of the following message levels from the drop-down list:

  • Information (info)
  • Business Error (bizerr)
  • Debug (debug)
  • Checkpoint (checkpoint)

The available message levels are described in more detail following this table.

Transactional

If set to true, then this message is written only as part of a rollback of the process flow.

Message text

The descriptive text of the message to be written in the transaction activity log.

Include contents

If set to true, then the contents of the current message (document) are included in the record. This parameter must be set to true for checkpoints. The contents of the message are not carried when the message is written as a transaction.

The following message levels relate to the type of message that is created and the current state of the server:

The message contents include the entire state of the process flow document. This can constitute a large amount of data, and would normally not be included for informational or debugging messages.

Edges:

The edges returned by the XA Log Message Service (com.ibi.agents.XDXALogMsg) are listed and described in the following table.

Edge

Description

success

A message was issued or a debug message was requested and the channel was not in debug mode.

fail_parse

The message contained iFL, which resulted in a syntax or execution error.



x
XML Digital Signature Create Service (com.ibi.agents.XDXMLDSigCreateAgent)

Syntax:

com.ibi.agents.XDXMLDSigCreateAgent

Description:

This service is used to generate an XML Digital Signature.

For more information about the XML Digital Signature Create service, see the iWay Service Manager Security Guide.


Top of page

x
XML Digital Signature Verify Service (com.ibi.agents.XDXMLDSigVerifyAgent)

Syntax:

com.ibi.agents.XDXMLDSigVerifyAgent

Description:

This service is used to validate an XML Digital Signature.

For more information about the XML Digital Signature Verify service, see the iWay Service Manager Security Guide.


Top of page

x
XQuery Expression Evaluation (com.ibi.agents.XDXQueryAgent)

Syntax:

com.ibi.agents.XDXQueryAgent

Description:

The XDXQueryAgent is used to evaluate an XQuery 1.0 expression against the incoming document. The results are available in an outgoing document. XQuery can be used to select portions of the document or to transform the document as a whole.

XQuery is a query and functional programming language that is designed to query collections of XML data. XQuery 1.0 was developed by the XML Query working group of the W3C. The work was closely coordinated with the development of XSLT 2.0 by the XSL Working Group. The two groups shared responsibility for XPath 2.0, which is a subset of XQuery 1.0.

Parameters:

Parameter

Description

XQuery Expression

The XQuery expression to evaluate. To put the expression in a file, you can use _file().

Evaluate Expression

When true, the XQuery Expression is evaluated by iFL to return the actual XQuery expression to use. The default is to take the XQuery expression as is, which simplifies quoting considerably.

Return

Determines how to return the result sequence in the output document. Examples are given below.

  • Select value to return the value of each result sequence item in a flat document.
  • Select markup to return the serialization of each result sequence item in a flat document.
  • Select root to return the Element or Document in the first result sequence item as the root of a tree document.
  • Select wrap to return a tree where each result sequence item appears under an item element.

Minimum Occurrence

Minimum number of items in result sequence, otherwise return the edge fail_empty.

Include All Items

Determines if all items in the result sequence are part of the return document, otherwise only the first item is included.

Separator

The separator to insert between result sequence items when returning a flat document. The default is no separator.

When the Evaluate Expression parameter is false, the XQuery Expression parameter contains the actual XQuery Expression. For example:

 //elem[@attr="1"]

When the Evaluate Expression parameter is true, the XQuery Expression parameter contains an iFL expression that is evaluated to obtain the actual XQuery Expression to use.

The following example is similar to the previous expression except the value to match against the attr attribute now depends on the special register, reg1:

 _concat("//elem[@attr=\"",sreg(reg1),"\"]") 

Another example is to use the function _file() to read the XQuery expression from a file.

If the XQuery Expression cannot be parsed by the XQJ implementation, the agent returns an error status document and it follows the fail_parse edge.

The returned value of an XQuery expression is always a result sequence. The Return parameter determines how the result sequence is stored in the output document. Selecting value or markup will return a string in a flat document. Selecting root or markup will return a parsed XML tree.

Consider the input document <root><elem>e1</elem></root> and the XQuery Expression /root/elem. The following table shows the effect of the Return parameter.

Return Parameter

Return Parameter

Output Document

Output Document Value

value

flat

"e1"

markup

flat

"<elem>e1</elem>"

root

tree

<elem>e1</elem>

wrap

tree

<XQueryResult><item><elem>e1</elem></item></XQueryResult>

The root option can only return the first item in the result sequence. That item must be an element or a document. If the element inherits XML declarations from its ancestors, those XML Namespace declarations will be added directly to the element.

The wrap option can return zero or more items. The intermediate <item> element makes it possible to return any node, including attributes. The XQueryResult Element will have exactly the same number of item sub-elements as there are items in the result sequence. The order sequence will be preserved, including returned attributes. When a returned item is an element that inherits XML declarations from its ancestors, those XML Namespace declarations will be added directly to the element. When a returned item is an attribute in a namespace, the XML namespace declaration will be added to the enclosing item Element.

The Minimum Occurrence parameter is useful to reject empty results. When the application requires a value, it can set the Minimum Occurrence parameter to 1. If the result sequence is empty, the agent returns an error status document and it follows the fail_empty edge.

The Include All Items parameter determines if all items in the result sequence are part of the return document, otherwise only the first item is included. When all items are returned in a tree document, they must always be copied in case two items would overlap. When a single item is required in a tree document, the returned node can often be reparented instead.

The Separator parameter can be used to separate the values when Include All Items is true and the return document is a flat String. For example, if the separator is |, the expression is //e, the return selection is value and the input document is:

 <root><e>1</e><e>2</e><e><3></e></root>, 

then the output string will be "1|2|3". Without the separator, the output would be "123".



x
External Variables

An XQuery expression can declare variables to be external. For example, the following expression declares two external variables, $v1 and $ns:v2.

declare namespace ns="http://ns";
declare variable $v1 external;
declare variable $ns:v2 external;
<root><elem1>{$v1}</elem1><elem2>{$ns:v2}</elem2></root>

These variables must be given a value from the environment. The XDXQueryAgent accomplishes this with the help of User Defined Properties. The name of the User Property is related to the external variable name in the following way:

For example, the $v1 variable above is not in a namespace, therefore the corresponding User Property is v1. The $ns:v2 variable above is in the namespace http://ns, therefore, the corresponding User Property is {http://ns}v2.

The User Properties can be given a value in iWay Designer. First, create a Service Object for XDXQueryAgent.

Click Next twice and enter the agent parameters.

Click Next to display the User Properties. Click the label Click here to add to add the User Properties one at a time.

Click Finish to create the Service Object.

The User Properties can be modified after the object is created. Double-click on the Service Object and select the User Defined Properties tab.

Click OK to save the changes.

Recall the XQuery expression presented earlier. If that expression is evaluated with the User Properties shown, the result will be:

<root><elem1>one</elem1><elem2>two</elem2></root>

If an external variable does not have a corresponding User Property, the agent returns an error status document and it follows the fail_parse edge instead.

Response Edges

Edge

Description

success

The execution was successful. The output document is generated according to the Return parameter.

fail_parse

The parameters are incorrect. This includes syntax errors in the XQuery expression or missing a value for an external variable. The output document is an error status document.

fail_empty

The application indicated that it requires at least one item in the result sequence but the result sequence was empty. The output document is an error status document.

fail_operation

Failed for another cause. The output document is an error status document.

XQuery Implementation

The evaluation engine is provided by a third-party XQJ implementation. By default, the agent is configured to call SaxonHE (Home Edition). The default can be modified by assigning a class name to the Java system property javax.xml.xquery.XQDataSource. The class specified must implement the XQDataSource interface. For example, this call to the java interpreter assigns the same XQDataSource as the default:

java -Djavax.xml.xquery.XQDataSource=net.sf.saxon.xqj.SaxonXQDataSource …


x
Zip Out Service (com.ibi.agents.XDZipOutAgent)

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