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)

Accumulate Iteration Service (com.ibi.agents.XDAccumIterAgent)

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

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

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)

AS2 Nonblocking Emit Service (com.ibi.agents.XDNAS2EmitAgent)

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

Attachment Iterator Service (com.ibi.agents.XDIterAttachments)

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

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

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

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

BAM Receiver Service (com.ibi.agents.BAMReceiver)

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

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

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

Cancel Service (com.ibi.agents.XDCancelAgent)

Catch Service (com.ibi.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 Listeners 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)

Cross-Origin Resource Sharing Service (com.ibi.agents.XDCorsAgent)

Data Quality Center Service (Non-Pooling, Deprecated) (com.ibi.agents.XDDQAgent)

Data Quality Center Service (Document-Driven, Pooling) (com.ibi.agents.XDDQAgent2)

Data Quality Center Service (User Parameter-Driven, Pooling) (com.ibi.agents.XDDQAgent2UserParm)

Deflate Service (com.ibi.agents.XDDeflateAgent)

Deidentification Service (com.ibi.agents.XDDeidentifyAgent)

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

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

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

DQC Batch Executor Service (com.ibi.agents.XDDQBatchExec)

DQC/MDC Flow Linkage Service (com.ibi.agents.MdcAgentISM)

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 Append Accumulation (com.ibi.agents.XDFileAppendAgent)

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

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

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

FTP and SFTP Services

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

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

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

HTTP ReST Routing Service (com.ibi.agents.XDReSTRouteAgent)

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)

LDAP Reader Service (com.ibi.agents.LDAPReader)

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)

Marshall Service (com.ibi.agents.XDMarshallAgent)

MLLP Emit Service (com.ibi.agents.XDMLLPEmitAgent)

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)

OAuth 1.0 Authentication Service (com.ibi.agents.XDOAuth1Agent)

OAuth 2.0 Authentication Service (com.ibi.agents.XDOAuth2Agent)

OpenRules Decision Service (com.ibi.agents.XDOpenRulesDecisionAgent)

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)

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)

RabbitMQ Emit Service (com.ibi.agents.XDRabbitMQEmitAgent)

RabbitMQ Read Service (com.ibi.agents.XDRabbitMQReadAgent)

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

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

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

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)

Transaction Completion Registration Service (com.ibi.agents.XDTxAgent)

Transform Service (com.ibi.agents.XDTransformAgent)

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

UDP Emit Service (com.ibi.agents.XDUDPEmitAgent)

Unmarshall Service (com.ibi.agents.XDUnmarshallAgent)

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

Uuencode (com.ibi.agents.XDUUDecodeAgent)

Uuencode (com.ibi.agents.XDUUPreEmitter)

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

Web Service HTTP Client Service (com.ibi.agents.XDWSHttpClientAgent)

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)

xCal and iCalendar Conversion Service (com.ibi.agents.XDXCalAgent)

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)


Top of page

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

Syntax:

com.ibi.agents.XDAccumEOSAgent

iIT Service Object:

accumulation: Accum EOS Agent

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 >

Edges:

The following table lists the available line edges for the Accumulate EOS Service (com.ibi.agents.XDAccumEOSAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse

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.


Top of page

x
Accumulate Iteration Service (com.ibi.agents.XDAccumIterAgent)

Syntax:

com.ibi.agents.XDAccumIterAgent

iIT Service Object:

iterator: AccumIterAgent

Description:

Accumulates by gathering during iteration and releasing after iteration.

Parameters:

Parameter

Description

Stage

  • Gathering adds to the accumulation during the iteration.
  • Releasing emits an accumulated document to the flow.

Correlation Key

Correlates gather and release side. Both must have the same key name.

  • accum

Edges:

The following table lists the available line edges for the Accumulate Iteration Service (com.ibi.agents.XDAccumIterAgent).

Line Edge

Description

OnCompletion

Complete

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • fail_notfound


Top of page

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

Syntax:

com.ibi.agents.XDXALogBizErr

iIT Service Object:

operations: Activity Log Business Error Message

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.

Severity

The severity of the error being logged. The two defined values are:

  • bizerror
  • bizfatal.

Edges:

The following table lists the available line edges for the Activity Log Business Error Message Service (com.ibi.agentsXDXALogBizErr).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse


Top of page

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

Syntax:

com.ibi.agents.XDXalogControlAgent

iIT Service Object:

iterator: AccumIterAgent

Description:

Control (Start or Stop) the specified activity log Provider(s).

Parameters:

Parameter

Description

Name

The name of a deployed activity log exit to be controlled. This log may be active or inactive.

Action

Actions to take.

  • Start: Start an activity log exit that is in stop state.
  • Stop: Stop an activity log exit that is started.

Wanteos

When using a streaming preparser in a channel, the last call is made AFTER the last document service exit is called.

  • False
  • True

Edges:

The following table lists the available line edges for the Activity Log Business Error Message Service (com.ibi.agentsXDXALogBizErr).

Line Edge

Description

OnCompletion

Complete

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • success
  • fail_parse
  • fail_notfound
  • fail_duplicate
  • fail_operation


Top of page

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

Syntax:

com.ibi.agents.XDXALogEvent

iIT Service Object:

operations: Activity Log Entry

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 edges are provided in the Line Configuration dialog box.

Edges:

The following table lists the available line edges for the Activity Log Entry Service (com.ibi.agents.XDXALogEvent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_Parse


Top of page

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

Syntax:

com.ibi.agents.XDAddAttachmentAgent

iIT Service Object:

attachments: Add Attachment

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

Value of the Content-Transfer-Encoding 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.

Edges:

The following table lists the available line edges for the Add Attachment Service (com.ibi.agents.XDAddAttachmentAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse


Top of page

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

Syntax:

com.ibi.agents.XDAddAttachmentFromFileAgent

iIT Service Object:

attachments: Add Attachment From File

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.

Edges:

The following table lists the available line edges for the Add Attachment From File Service (com.ibi.agents.XDAddAttachmentFromFileAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse


Top of page

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

Syntax:

com.ibi.agents.XDAddCorrelEntryAgent

iIT Service Object:

misc: Add Correl Entry Agent

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.

Edges:

The following table lists the available line edges for the Add Correl Entry Service (com.ibi.agents.XDAddCorrelEntryAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_operation
  • fail_duplicate
  • fail_reissue
  • fail_closed
  • fail_notfound


Top of page

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

Syntax:

com.ibi.agents.XDAltRouteIP

iIT Service Object:

operations: Alt Route IP

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.

Edges:

The following table lists the available line edges for the Alt Route IP Service (com.ibi.agents.XDAltRouteIP).

Edge

Description

  • OnSuccess
  • OnError
  • OnFailure

A route could be obtained.

fail_parse

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.


Top of page

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

Syntax:

com.ibi.agents.XDAQEmitAgent

iIT Service Object:

misc: AQ Emit Agent

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

Edges:

The following table lists the available line edges for the AQ Emit Service (com.ibi.agents.XDAQEmitAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_connect

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.


Top of page

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

Syntax:

com.ibi.agents.AS1EmitAgent

iIT Service Object:

misc: AS 1 Emit Agent

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

Edges:

The following table lists the available line edges for the AS 1 Emit Service (com.ibi.agents.AS1EmitAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse


Top of page

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

Syntax:

com.ibi.agents.AS2EmitAgent

iIT Service Object:

misc: AS 2 Emit Agent

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.

  • encrypted

  • 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 server.

  • 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

Edges:

The following table lists the available line edges for the AS 2 Emit Service (com.ibi.agents.AS2EmitAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse


Top of page

x
AS2 Nonblocking Emit Service (com.ibi.agents.XDNAS2EmitAgent)

Syntax:

com.ibi.agents.XDNAS2EmitAgent

iIT Service Object:

emit: AS2 Nonblocking Emit

http: AS2 Nonblocking Emit

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 HTTP client-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.

Edges:

The following table lists the available line edges for the AS2 Nonblocking Emit Service (com.ibi.agents.XDNAS2EmitAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_connect
  • fail_info
  • fail_redirection
  • fail_client
  • fail_server
  • fail_operation
  • fail_parse
  • fail_request_too_large
  • fail_response_too_large
  • fail_unsigned


Top of page

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

Syntax:

com.ibi.agents.XDMDNSendNowAgent

iIT Service Object:

misc: AS2 Nonblocking Send MDN

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.

Edges:

The following table lists the available line edges for the AS 2 Nonblocking Send MDN Service (com.ibi.agents.XDMDNSendNowAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_operation


Top of page

x
Attachment Iterator Service (com.ibi.agents.XDIterAttachments)

Syntax:

com.ibi.agents.XDIterAttachments

iIT Service Object:

iterator: Attach Iterator

Description:

Handle each attachment of the current document per iterative.

Parameters:

Parameter

Description

Handle Option

How to handle identified attachments

  • delete: removes each attachment from current document after processing.
  • replace: replaces the original attachment with a the modified document.
  • leave: leaves original attachments unchanged.

Start Index

Index of the first attachment to process in the mail object. The first attachment to the main document has an index of 0 (zero).

Header Namespace

The special register namespace where MIME headers for the current attachment will be stored. If replace handling option is selected, registers in the namespace will be added to the replaced attachment.

Main Body Part Header Namespace

If the current attachment is itself a multipart, then this is the special register namespace where the MIME headers for the main body part will be stored.

Keep Document Flat

Keeps the body of the document as an array of bytes.

  • True
  • False

Edges:

The following table lists the available line edges for the Attachment Iterator Service (com.ibi.agents.XDIterAttachments).

Line Edge

Description

OnCompletion

Complete

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • fail_operation
  • fail_notfound


Top of page

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

Syntax:

com.ibi.agents.XDAttachOps

iIT Service Object:

attachments: Attachment Operations

operations: Attachment Operations

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.

Edges:

The following table lists the available line edges for the Attachment Operations Service (com.ibi.agents.XDAttachOps).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_operation
  • fail_parse
  • fail_notfound


Top of page

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

Syntax:

com.ibi.agents.XDAttachmentToDocAgent

iIT Service Object:

attachments: Attachment to Document

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.

Edges:

The following table lists the available line edges for the Attachment to Document Service (com.ibi.agents.XDAttachmentToDocAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_operation
  • fail_parse
  • fail_notfound


Top of page

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

Syntax:

com.ibi.agents.XDAttachmentToDocAgent

iIT Service Object:

objectgroup: object

Description:

Accumulates by gathering during iteration and releasing after iteration.

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.

Edges:

The following table lists the available line edges for the Attachment to Document Service (com.ibi.agents.XDAttachmentToDocAgent).

Line Edge

Description

OnCompletion

Complete

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_operation
  • fail_parse
  • fail_notfound


Top of page

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

Syntax:

com.ibi.agents.XDPrincipalAgent

iIT Service Object:

operations: Security: Authenticate/Impersonate

security: Security: Authenticate/Impersonate

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.

Edges:

The following table lists the available line edges for the Authenticate/Impersonate Service (com.ibi.agents.XDPrincipalAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_security
  • fail_parse


Top of page

x
BAM Receiver Service (com.ibi.agents.BAMReceiver)

Syntax:

com.ibi.agents.BAMReceiver

iIT Service Object:

objectgroup: BAM Receiver

Description:

This is the BAM Receiver.

Parameters:

Parameter

Description

File Name and Location

File name and location in the form of a full path entry. For example, C:/Temp/Datafile.xml

Real-time collection period (sec)

Frequency by which the real-time performance metrics are to be written, where a lower number will have a greater impact on system performance. The default setting is set to 5 seconds.

File Backup

Should the original file be backed up before creating a new log file.

You can select either True or False.

No of Files to Backup

The number of real-time performance metric files to back up. All backed up files are numbered and kept in the same directory where the original file is written. The default setting is set to 15 minutes.

User defined Metrics

Special Registers and time based performance aggregate function (COUTN, SUM, MIN, MAX, and AVG) to monitor in real-time and then archive. Multiple values should be separated by commas, and the aggregate function should be supplied as: FUNCTION(SREGNAME).

Choose Archive Frequency

The Archive Frequency at which the data is persisted in the database. You can select either:

  • RealTime
  • Minutes
  • Hours

Time (in seconds) since last execution

Specify the time (in seconds) since the last execution occurred. This will generate events in case of inactivity in iSM.

Channel Monitor Type

Select which channels should be monitored. You can select either:

  • Active Only
  • All Channels (active, inactive, config)

Edges:

The following table lists the available line edges for the BAM Receiver Service (com.ibi.agents.BAMReceiver).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure


Top of page

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

Syntax:

com.ibi.agents.XDBlankWalk

iIT Service Object:

sreg: Blank [whitespace] elimination

transform: Blank [whitespace] elimination

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.

Edges:

The following table lists the available line edges for the Blank Elimination Service (com.ibi.agents.XDBlankWalk).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

 

OnError

OnFailure

OnSuccess

 

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.


Top of page

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

Syntax:

com.ibi.agents.XDBase64Agent

iIT Service Object:

format: Base64 Operation

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.

Edges:

The following table lists the available line edges for the Base64 Operation Service (com.ibi.agents.XDBase64Agent).

Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse

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


Top of page

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

Syntax:

com.ibi.agents.CCharFilter

iIT Service Object:

misc: C Char Filter

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.

Edges:

The following table lists the available line edges for the C Char Filter Service (com.ibi.agents.CCharFilter).

Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure

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>

Top of page

x
Cancel Service (com.ibi.agents.XDCancelAgent)

Syntax:

com.ibi.agents.XDCancelAgent

iIT Service Object:

operations: Cancel a Service

Description:

The execution of one or more services on other execution edges of a process flow can be cancelled by using the Cancel Service (com.ibi.agents.XDCancelAgent). This service accepts the name of one or more target services. Upon execution, a cancellation request is sent to the named service(s).

The cancellation capability facilitates the construction of caches, in which a slower operation (such as accessing a remote database) is run in parallel with a faster, local cache search. If the cache finds the required entry in the local database, then it can cancel the slower operation.

A cancel operation can only be directed to a service node (agent) that supports cancellation. In addition, that service must be able to actually cancel. For example, the SQL Object used in process flows can issue a cancel operation, but the effectiveness of the cancellation will depend upon the underlying database interfaces.

Parameters:

Parameter

Description

Service to cancel *

Upon execution, the identified service(s) in this field will be sent a cancellation request. The service(s) specified here should offer an OnCancel/cancellation edge to terminate the execution thread. You can specify an individual service name, a comma-delimited list of service names, or a space-delimited list of service names. Service names with spaces, commas, or other special characters must be enclosed in quotes.

Edges:

The following table lists the available line edges for the Cancel Service (com.ibi.agents.XDCancelAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse

Example:

In the following cache example, the CancelReal node represents the Cancel Service (com.ibi.agents.XDCancelAgent).

In this process flow, the CancelReal node is configured to cancel the AccessReal database access, which is anticipated to be slower than the AccessCache operation.

Although the local and remote sides of this process flow each go to the Junction node and thus to the End node, only one side will reach it.

Caches are very timing dependent. As a result, this example is simplified and is not intended to show a fully working cache.


Top of page

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

Syntax:

com.ibi.agents.XDCatchAgent

iIT Service Object:

operations: Catch errors in flows

Description:

Error handling in iWay Service Manager (iSM) process flows can be accomplished in a number of different ways. Supported method and techniques include:

The concept of the Catch service 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 a process flow, you can add a Catch node in front of the services in which an error might occur. There are five 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 Catch nodes in a process flow. The error branch is taken off the closest Catch node previous to where the error occurred. In this manner, you can add multiple error conditions for a given process flow if required.

The catch is hierarchical and each catch is considered nested in the prior Catch node. When a Catch node is triggered, the Special Register (SREG) iway.catchname is set to the name of the Catch node that first catches the error. The register is not replaced as succeeding Catch nodes see the error. This allows higher scopes to ascertain the scope under which the original error is caught. For example, if Task3 fails and the error is caught by CatchScope3, the register will be set to CatchScope3 even though the error may cascade through higher scopes.

Parameters:

Parameter

Description

Maximum Entries

The maximum number of times a CATCH will be effected per forward entry.

Example 1

In this example, consider a process flow in where three tasks are performed serially (called Task1, Task2, and Task3). The process flow performs three tasks, as shown in the following image.

There is a requirement to handle errors in each task separately. So in our updated process flow, a Catch node precedes each Task node to handle errors in that task.

In this example, assume Report1 to Report3 are each an SQL object recording failures. If Task3 (on the main line of the process flow) fails, then the failure is caught by CatchScope3. Report3 records the failure and control passes to Fail3. Fail3 is a Fail service, which has a Bypass Catch Processing parameter set to true. For more information on the Fail service, see Fail Service (com.ibi.agents.XDFailAgent).

However, if Report3 fails, then the failure will be caught by CatchScope2. The Catch node for scope three does not catch the Report3 failure as it has already caught a failure. The scope in this example tests to determine whether the failure was in its scope, in which case Report2 will record the failure within the scope, or in a lower scope. It does this by the NotMe2 test, which evaluates the scope. This is a test node, which is set to the following parameter values:

This causes the extra report to be bypassed. In this case, or example uses a Trace service (Trace1, Trace2) to report the error in the lower scope to a simple trace message. Following the trace message reporting a failure in a lower scope, the process flow uses a Fail service to issue the fail that did not get issued in the lower scope. This maintains the statistics of the channel.

In the multiple Catch node use case, setting the Bypass Catch Processing parameter of the Fail node to true will cause the failure request to bypass upper-level Catch nodes, avoiding the need for scope testing (such as with the example in the My Scope tests in upper scopes).

Example 2

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

iIT Service Object:

operations: Server Statistics

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.

Edges:

The following table lists the available line edges for the Channel Information Service (com.ibi.agents.XDChanInfoAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure

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>

Top of page

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.

Edges:

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


Top of page

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

Syntax:

com.ibi.agents.XDCheckSchema

iIT Service Object:

misc: Check Document Against External Schema

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.

Is Target Namespace Enabled

  • false (default). There is no namespace to apply.
  • true. There is a namespace to apply.

Target Namespace Location

Target Namespace location. This property is mandatory if the preceeding property is set to true.

When

When to perform this operation.

  • Always (default) at each execution.
  • On debug, when running in debug mode.

Edges:

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.


Top of page

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

Syntax:

com.ibi.agents.XDCommittAgent

iIT Service Object:

operations: Commit/Rollback during flow

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

The following table lists the available line edges for the Channel Information Service (com.ibi.agents.XDChanInfoAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_operations


Top of page

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

Syntax:

com.ibi.agents.XDConstantAgent

iIT Service Object:

misc: Constant Agent

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.

Edges:

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>

Top of page

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

Syntax:

com.ibi.agents.XDXalogControlAgent

iIT Service Object:

xalog: Activity Log Control

contol: Activity Log Control

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 cannot be understood.

fail_notfound

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

fail_operation

The requested action failed for some other reason.


Top of page

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

Syntax:

com.ibi.agents.XDControlAgent

iIT Service Object:

control: Controls Listeners

Description:

The Controls Listeners service enables or disables one or more listeners or channels. This functionality enables logical control of the server configuration from within a process flow. The following are the supported control operations/actions:

Using the Controls Listeners 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(s)

Fully qualified name of listener(s) or channel(s) to control (for example, group:inlet:listenername), can be comma-separated list. Partial names can be entered with an ending asterisk character (*), meaning all with names starting with the entry characters.

Action

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

  • start. Named listener or channel is started, if necessary. It is enabled for acquiring messages. This action is selected by default.
  • pause. Named listener or channel is disabled for acquiring messages. This may not take effect immediately. The listener or channel remains active and no resources are released.
  • pulse. Named listener or channel is started (or enabled) to acquire messages. It runs through one acquisition cycle (for example, reading all rows in a RDBMS table) and is then stopped.

    Note: The pulse action can be used with pull and poll types of listeners (for example, JMS, SQL, and File). Applications that depend upon pulsing should be designed with care.

  • stop. Named listener or channel is stopped. All resources are released.

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 following table lists the available line edges for the Controls Listeners service (com.ibi.agents.XDControlAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure

Example:

You can use the Controls Listeners service to stop a channel that is currently running in iWay Service Manager (iSM). In a process flow, configure a Service object using the Controls Listeners service (com.ibi.agents.XDControlAgent). Click the Properties tab. For the Listener(s) parameter, specify the name of the channel that you want to stop (for example, default).

Invoke the channel that contains the Controls Listeners 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, then it will be stopped.

You can verify this action by examining the status change for the default channel in the Channel Management pane after successfully passing the XML document through the Controls Listeners service channel.

Notice that the default channel is now stopped.


Top of page

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

Syntax:

com.ibi.agents.XDCorrelInquiryAgent

iIT Service Object:

misc: Correl Inquiry Agent

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.

Edges:

The following table lists the available line edges for the Correl Inquiry Service (com.ibi.agents.XDCorrelInquiryAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • open
  • closed

notfound

fail_operation


Top of page

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

Syntax:

com.ibi.agents.XDCorrelInquiryByStateAgent

iIT Service Object:

misc: Correl Inquiry By State Agent

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.

Edges:

The following table lists the available line edges for the Correl Inquiry By State Service (com.ibi.agents.XDCorrelInquiryByStateAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_operation


Top of page

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

Syntax:

com.ibi.agents.XDCorrelSetInquiryAgent

iIT Service Object:

misc: Correll Set Inquiry Agent

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.

Edges:

The following table lists the available line edges for the Correl Set Inquiry Service (com.ibi.agents.XDCorrelSetInquiryAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • open
  • closed
  • notfound
  • fail_operation


Top of page

x
Cross-Origin Resource Sharing Service (com.ibi.agents.XDCorsAgent)

Syntax:

com.ibi.agents.XDCorsAgent

iIT Service Object:

http: Cross-Origin Resource Sharing

Description:

This service implements the server-side processing of Cross-Origin Resource Sharing (CORS) as described in http://www.w3.org/TR/cors/.

Normally, browsers forbid cross-origin requests for security reasons. CORS specifies a mechanism that allows browsers to make cross-origin requests to resources that opt in to provide access. CORS defines a set of HTTP headers and the rules to process them. Most common browsers implement CORS natively. It is expected that the user agent making the request will be a browser. The CORS service implements the server-side rules to respond to CORS requests received by an nHTTP listener.

If the request is simple (such as GET, HEAD, or POST), then the user agent (for example, the browser) can make the request directly. The user agent adds the Origin header to indicate which site is asking for this resource. The syntax of an origin is:

scheme "://" host [ ":" port ]

The same syntax is used to configure the allowed origins in the service.

If the request is not simple, then the user agent must send a pre-flight request before the actual request to authorize it. The pre-flight request is an OPTIONS request for the same URL. The Access-Control-Request-Method header indicates the method of the actual request (for example, PUT). The optional Access-Control-Request-Headers header indicates which headers will be used in the actual request. Depending on the response of the pre-flight request, the user agent can abort or make the actual request following the same rules as a simple request.

The CORS service analyzes the request, and depending on its configuration, will report one of the following results:

In accordance with the specification, the CORS service adds the CORS response headers only if the request is allowed. The new headers appear as Special Registers (SREGs) in the Response Header Namespace.

The CORS service sets the output document of an OPTIONS request to a zero-length byte array. This will return an empty body with Content-Length equal to 0. This is the most appropriate result, but an application can modify the output document afterwards if necessary. For other requests, the CORS service returns the input document as the output document. Unlike the headers, the output document will be the same irrespective of the actual outcome (allowed, notallowed, or notcompliant).

The nHTTP listener must be configured carefully to make CORS processing possible. The OPTIONS Handling property must be set to event. This instructs the listener to pass the request to the channel instead of responding directly. The Request Header Namespace and the Response Header Namespace must not be none, and they must be different from each other. This makes the request headers available to the CORS service, and allows the response headers be sent with the response. Of course, the Excluded Headers property should not list the CORS headers. The HTTP Response Code must be 200 for a CORS pre-flight response. The Authentication Scheme and the Authentication Realm properties should be considered carefully. CORS is a mechanism used to relax security. It does not replace the need for user credentials to protect sensitive data.

Parameters:

The following table describes the parameters for the Cross-Origin Resource Sharing Service.

Parameter

Description

Allowed Origins

List of origins that are allowed access to the resource. Leave empty or enter * to allow all origins. The syntax of an origin is:

scheme "://" host [ ":" port ]

This property is used to validate the Origin header in the request and influences the value of the Access-Control-Allow-Origin header in the response. The return value of the Access-Control-Allow-Origin header will be * if the Allowed Origins is * and Supports Credentials is false.

Allowed Methods

Comma-separated list of HTTP methods that are supported by the resource. Leave empty to allow all methods. This is used to validate the Access-Control-Request-Method header in the pre-flight request and to initialize the Access-Control-Allow-Methods header in the pre-flight response.

Supported Headers

Comma-separated list of HTTP header field names that are supported by the resource. Leave empty to claim support for all headers. This is used to validate the Access-Control-Request-Headers header in the pre-flight request and to initialize the Access-Control-Allow-Headers header in the pre-flight response.

Exposed Headers

Comma-separated list of HTTP header field names of headers (other than the simple response headers) that the resource might use and can be exposed. This is used to initialize the Access-Control-Expose-Headers header in the response of the actual request.

Supports Credentials

Indicates whether the resource supports user credentials in the request. This is used to initialize the Access-Control-Allow-Credentials header in the response. Notice the return value of the Access-Control-Allow-Origin header will never be * for a resource that supports credentials.

Max Age

Specifies the amount of seconds the user agent (for example, the browser) is allowed to cache the result of the pre-flight request. The value 0 means unbounded. This is used to initialize the Access-Control-Max-Age header in the response of the pre-flight request.

Edges:

The following table lists the available line edges for the Cross-Origin Resource Sharing Service (com.ibi.agents.XDCorsAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success: The message was successfully analyzed. The cors Special Register contains the result.

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_operation: the service is not executing a request received by an nHTTP listener.
  • open
  • closed
  • notfound

Special Registers:

The following table describes the Special Register (SREG) that is assigned upon a successful execution.

Special Register

Description

cors

The outcome of analyzing the request. This will be one of the following values:

  • allowed
  • notallowed
  • notcompliant

Note: These values are lowercase and do not contain any spaces.



x
Examples

The following examples show the result of executing the Cross-Origin Resource Sharing Service on various HTTP requests. The following table lists the parameter values for the Cross-Origin Resource Sharing Service that are used by the examples.

Parameter

Value

Allowed Origins

http://host1.com http://host2.com:8080

Allowed Methods

GET,POST

Supported Headers

ReqHdr1,ReqHdr2,ReqHdr3

Exposed Headers

RespHdr1,RespHdr2

Supports Credentials

true

Max Age

30

Example 1

This HTTP request is missing the Origin header. When analyzing this request, the service would set the cors Special Register to notcompliant and return success. No response headers would be added. The output document is the input document.

GET /app/page1 HTTP/1.1
Host: example.com

Example 2

Since the Allowed Origins is not empty or *, the origin must match exactly one of the listed origins. When analyzing this request, the service would set the cors Special Register to notallowed and return success. No response headers would be added. The output document is the input document.

GET /app/page1 HTTP/1.1
Host: example.com
Origin: http://host.com

Example 3

When analyzing this request, the service would set the cors Special Register to allowed and return success. The output document is the input document.

GET /app/page1 HTTP/1.1
Host: example.com
Origin: http://host1.com

The following response headers will be added:

Access-Control-Allow-Origin: http://host1.com
Access-Control-Expose-Headers: RespHdr1,RespHdr2
Access-Control-Allow-Credentials: true

Example 4

This pre-flight request is missing the Access-Control-Request-Method header. When analyzing this pre-flight request, the service would set the cors Special Register to notcompliant and return success. No response headers would be added. The output document is a zero-length byte array.

OPTIONS /app/page1 HTTP/1.1
Host: example.com
Origin: http://host1.com

Example 5

The actual request method HEAD is not allowed. When analyzing this pre-flight request, the service would set the cors Special Register to notallowed and return success. No response headers would be added. The output document is a zero-length byte array.

OPTIONS /app/page1 HTTP/1.1
Host: example.com
Origin: http://host1.com
Access-Control-Request-Method: HEAD

Example 6

The header names in Access-Control-Request-Headers are all supported headers. When analyzing this pre-flight request, the service would set the cors Special Register to allowed and return success. The output document is a zero-length byte array.

OPTIONS /app/page1 HTTP/1.1
Host: example.com
Origin: http://host1.com
Access-Control-Request-Method: GET
Access-Control-Request-Headers: ReqHdr1,ReqHdr2

The following response headers will be added:

Access-Control-Allow-Origin: http://host1.com
Access-Control-Allow-Methods: GET,POST
Access-Control-Allow-Headers: ReqHdr1,ReqHdr2,ReqHdr3
Access-Control-Allow-Credentials: true
Access-Control-Max-Age: 30

Top of page

x
Data Quality Center Service (Non-Pooling, Deprecated) (com.ibi.agents.XDDQAgent)

Syntax:

com.ibi.agents.XDDQAgent

iIT Service Object:

DQS: Data Quality Service Agent (non-pooling, deprecated)

Description:

This service marshals data and processes data using an iWay Data Quality Provider.

Note: This service is deprecated. The Data Quality Center Service (Document-Driven, Pooling), com.ibi.agents.XDDQAgent2, should be used instead.

Parameters:

Parameter

Description

Data Quality Provider *

The name of the configured Data Quality provider that should be invoked by this service.

XPath Expression *

Specify an XPath expression that will return one or more elements from the input document that will be used as input records when the iWay Data Quality Center (DQC) plan is invoked.

XPath Namespace Map

If the input document contains namespaces, then this parameter specifies the configured namespace map to be used when evaluating XPath expressions.

Replace or Preserve? *

Determines whether the children of the record element in the output document should be preserved (appending the result of the iWay DQC plan execution as new child elements), or should the original children be replaced with the iWay DQC plan results.

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

  • Replace
  • Preserve

By default, replace is selected.


Top of page

x
Data Quality Center Service (Document-Driven, Pooling) (com.ibi.agents.XDDQAgent2)

Syntax:

com.ibi.agents.XDDQAgent2

iIT Service Object:

DQS: Data Quality Service Agent - Document Driven (pooling)

Description:

This service marshals data from an input document and processes data using an iWay Data Quality Runtime Provider.

Parameters:

Parameter

Description

Data Quality Runtime Provider *

Specify the configured iWay Data Quality Runtime Provider that should be invoked.

DQC plan file *

Specify the location of the iWay Data Quality Center (DQC) plan file containing the logic for the data quality operation.

Runtime Config File (Optional)

Specify the location of the iWay DQC runtime configuration file. This file is used to define an iWay DQC runtime variable, such as JDBC data sources or folder shortcuts used in the plan.

XPath Expression *

Specify an XPath expression that will return one or more elements from the input document that will be used as input records when the iWay DQC plan is invoked.

XPath Namespace Map

If the input document contains namespaces, then this parameter specifies the configured namespace map to be used when evaluating XPath expressions.

Replace or Preserve? *

Determines whether the children of the record element in the output document should be preserved (appending the result of the iWay DQC plan execution as new child elements), or should the original children be replaced with the iWay DQC plan results.

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

  • Replace
  • Preserve

By default, replace is selected.

Edges:

The following table lists the available line edges for the Data Quality Center Service (Document-Driven, Pooling) (com.ibi.agents.XDDQAgent2).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_partner
  • fail_parse
  • fail_notfound



x
Configuring Data Quality Runtime Providers

In the iWay Service Manager (iSM) Administration Console, the Data Quality Providers area now includes a second group called Defined Data Quality Runtime Providers, as shown in the following image.

The former group (Defined Data Quality Providers) is now deprecated. It is recommended to migrate to the new provider (Data Quality Runtime Provider). The original Data Quality Provider represented a single iWay DQC plan. This required you to configure one Data Quality Provider for each iWay DQC plan The new Data Quality Runtime Provider represents iWay DQC runtime. A single Data Quality Runtime Provider can be used to manage all iWay DQC plans.

The new Data Quality Runtime Provider is configured by setting pooling parameters for the local instance of iWay DQC that is installed with iSM. In a future iSM release, it will be possible to configure a remote instance of iWay DQC.

The following image shows the Data Quality Runtime Provider Settings pane.

The pools enable iSM to optimize access to iWay DQC, consistent with the reentrancy of the iWay DQC subsystem in use. Note that these pool settings apply to each iWay DQC plan that is managed by the provider. Thus, if the iWay DQC runtime loads 3 separate plans and the Maximum Pool Size parameter is set to 3, then a maximum of 9 execution threads will be pooled.

The Data Quality Runtime Provider supports the following services:

The document-driven version of the service has the same functionality as the deprecated Data Quality Center Service (com.ibi.agents.XDDQAgent), except:

For more information about using Data Quality Runtime Providers with one of the supported services, see Using the Data Quality Center Service (User Parameter-Driven, Pooling).


Top of page

x
Data Quality Center Service (User Parameter-Driven, Pooling) (com.ibi.agents.XDDQAgent2UserParm)

Syntax:

com.ibi.agents.XDDQAgent2UserParm

iIT Service Object:

DQS: Data Quality Service Agent - User Parm Driven (pooling)

Description:

This service executes an iWay DQC plan and passes user parameters as input data. The plan is dynamic and called by name.

Parameters:

Parameter

Description

Data Quality Runtime Provider *

Specify the configured iWay Data Quality Runtime Provider that should be invoked.

DQC plan file *

Specify the location of the iWay Data Quality Center (DQC) plan file containing the logic for the data quality operation.

Runtime Config File (Optional)

Specify the location of the iWay DQC runtime configuration file. This file is used to define an iWay DQC runtime variable, such as JDBC data sources or folder shortcuts used in the plan.

Include Input? *

Determines whether the input data (from user parameters), should be included in the output document that is generated by this service. Select true or false.

Include Messages? *

Determines whether messages generated during the execution of the iWay DQC plan should be included in the output document that is generated by this service. Select true or false.

Edges:

The following table lists the available line edges for the Data Quality Center Service (User Parameter-Driven, Pooling) (com.ibi.agents.XDDQAgent2UserParm).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_partner
  • fail_parse
  • fail_notfound



x
Using the Data Quality Center Service (User Parameter-Driven, Pooling)

The following image shows the configuration settings pane for the Data Quality Center Service (User Parameter-Driven, Pooling).

The record that is passed to the iWay DQC plan is defined using user parameters. This can be configured using iWay Integration Tools Designer, or you can create a parameter set in the Registry under the Variables section, and then attach the parameter set to the configured service.

The names of these parameters will be passed to iWay DQC as field names and the evaluated parameter values as the field values. Typically, the parameter values will be set using iFL expressions, using special registers or XPath to extract values from the input document of the service. The parameters are treated a single record to pass to the iWay DQC plan.

The service outputs a simple XML document containing the output record from iWay DQC, and optionally including the input record and/or any messages generated by iWay DQC runtime.

For example, you can use this service to invoke the sample (hello_customer) iWay DQC plan.



x
Procedure: How to Use the Data Quality Center Service (User Parameter-Driven, Pooling) to Invoke a Sample Plan

To invoke the sample hello_customer plan using the Data Quality Center Service (User Parameter-Driven, Pooling):

  1. Configure a Data Quality Runtime Provider as described in Configuring Data Quality Runtime Providers.

    For this example, do not be concerned about the pooling options. You can leave the default value, which pools one execution thread. Specify DQRuntime as the name for the Data Quality Runtime Provider. After this provider is created, you must restart iSM.

  2. Add the Data Quality Center Service (User Parameter-Driven, Pooling) (com.ibi.agents.XDDQAgent2UserParm) to a process flow. Specify parameter values for this service as indicated in the following table:

    Parameter

    Value

    Data Quality Runtime Provider

    DQRuntime

    DQC plan file

    Specify the path to the iWay DQC hello_customer.plan file.

    Runtime Config File

    <leave blank>

    Include Input?

    true

    Include Messages?

    true

  3. Add the following user parameters to the service:
    • firstname
      _xpath(//customerGreeting/customers[1]/firstname)
    • lastname
      _xpath(//customerGreeting/customers[1]/lastname)

    Note: The XPath expression specifies that you want the element of the first customer n the input document. Remember, this service only processes one record at a time.

  4. Test the process flow in the configuration where you created the Data Quality Runtime Provider using the following input document:
    <customerGreeting>
     <customers>
       <firstname>Daniel</firstname>
       <lastname>Deutsch</lastname>
     </customers>
     <customers>
       <firstname>Alain</firstname>
       <lastname>Perez</lastname>
     </customers>
    </customerGreeting>

    The resulting output should be structured as shown in the following example:

    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <DQC planFile="c:\working\dqc\hello_customer.plan">
     <input>
       <field name="lastname">Deutsch</field>
       <field name="firstname">Daniel</field>
     </input>
     <output>
       <field name="greeting">Hello, Daniel Deutsch!</field>
    </output>
    <messages/>
    </DQC>

    Note: The input record is included and the document also includes an element for messages. However, since this iWay DQC plan completed without any messages from iWay DQC, there are no messages here.


Top of page

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

Syntax:

com.ibi.agents.XDDeflateAgent

iIT Service Object:

exit_preemit: Deflate Agent

misc: Deflate Agent

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.

Edges:

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.


Top of page

x
Deidentification Service (com.ibi.agents.XDDeidentifyAgent)

Syntax:

com.ibi.agents.XDDeidentifyAgent

iIT Service Object:

transform: De-identify an XML Document

Description:

The Deidentification service provides algorithms that can be used to implement the de-identification of protected health information in accordance with the Health Insurance Portability and Accountability Act (HIPAA) Privacy Rule. Multiple algorithms can be configured since a combination of algorithms will be needed to deidentify the data correctly.

The Deidentification service takes an XML document as input. The first configured algorithm takes this document as input and modifies it in place. The result is fed into the next configured algorithm and so on. The result of the last configured algorithm is the XML document returned by the service.

Parameters:

The following table lists and describes the parameters common to all algorithm instances.

Parameter

Description

XML Namespace Provider

Provider for the mapping between XML namespace prefix and namespace URI in XPath expressions. If left blank, XPath expressions cannot contain namespaces.

Xpath Syntax

Determines which syntax level of XPath should be used. The default option selects the syntax level as set in the console global settings.

The following table lists and describes the parameters for the first algorithm instance.

Parameter

Description

Name1

Determines the de-identification algorithm to perform.

Argument1

The argument value for de-identification algorithms that take an argument .

Targetnodes1

An XPath expression that returns a nodeset. The de-identification algorithm will be applied to each node in the nodeset. If XML Namespace prefixes are used, they must be declared in the XML Namespace Provider.

For more information about the available algorithms and the meaning of the argument, see the following section.

Edges:

The following table lists the available line edges for the Deidentification Service (com.ibi.agents.XDDeidentifyAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • fail_operation

The Deidentification service offers explicit parameters for up to 5 algorithm instances: Algorithms 1 to 5. Extra instances can be created if more than five algorithm instances are needed. Instances for algorithm 6 and above can be created with user parameters named:

algorithmNN
argNN
targetNN

Where:

NN

Is the instance number.

For example, the sixth algorithm instance can be created with the user parameters: argument6, arg6, and target6. There is no limit on the value of NN, though the instance numbers must be consecutive to be recognized. The service stops looking for more algorithm instances as soon as it finds one that is not configured. For example, if Algorithm 3 is not configured, Algorithm 4 and 5 will be ignored.

Algorithms:

The following table describes the available alogrithms in the Deidentification service.

Algorithm

Argument

Description

Encrypt Formatted Digits

encryption key

Maps the digits in a formatted string with 4x4 Playfair algorithm. The encryption key should contain only digits, and is padded if necessary to make it 16 digits long. Playfair works with pairs of characters. When the number of digits in the input is odd, the input is padded by one character and one character is ignored in the output. There is no validation of the resulting number. The algorithm will always produce the same output for the same input when using the same key. The mapping is not reversible. Different input might map to the same output, though this is not common. Only the digits are mapped, the other characters are preserved at the same position. For example, (212)223-3333 might map to (655)887-2424 with the format characters preserved.

Encrypt SSN

encryption key

Maps Social Security Numbers by encrypting them with 4x4 Playfair algorithm. The encryption key should contain only digits, and is padded if necessary to make it 16 digits long. Playfair works with pairs of characters. The input is padded by one character. The output is 10 digits long and the last character is eliminated to make it 9 digits long. The algorithm will never produce a Social Security Number starting with 9, starting with 666, or with all zeroes in any of the three groups: 000-xx-xxxx, xxx-00-xxxx, and xxx-xx-0000. If the resulting Social Security Number is invalid, the output is re-encrypted until it becomes valid. The algorithm will always produce the same encrypted SSN for the same input SSN when using the same key. The mapping is not reversible. Different input SSN might map to the same encrypted SSN. Only the digits are mapped, while the other characters are preserved at the same position. For example, 111-22-3333 might map to 655-88-2233 with the hyphens preserved.

Sequential SSN

unused

Maps Social Security Numbers to numbers in consecutive increasing order starting with 001010001. The numbers produced adhere to the rule used by Social Security Administration on June 25, 2011 and later. The algorithm will never produce a Social Security Number with all zeroes in any of the three groups: 000-xx-xxxx, xxx-00-xxxx, and xxx-xx-00000. Only the digits are mapped, while the other characters are preserved at the same position. For example, 111-22-3333 might map to 001-01-0035 with the hyphens preserved. Within a single run, a previously mapped SSN will map to the same number it was assigned earlier. The mapping is not preserved across runs.

Text Constant

new text

Replaces the contents of an element by a string constant. The element keeps its attributes, but all existing mixed content children are removed. The argument is evaluated once to obtain the string constant.

Random Day

date pattern

Parses a date using the pattern in the argument, replaces the day and month with random values, and clips the year to at most 90 years ago. The argument is evaluated once to obtain the date pattern in SimpleDateFormat syntax.

Text Eval

iFL expression

Replaces the contents of an element by a string obtained by evaluating an iFL expression. The element keeps its attributes, but all existing mixed content children are removed. The argument is evaluated for each target node processed. The existing text value of the element is stored in the special register iway.value. The new value can depend on the existing value by calling _sreg (iway.value) within the iFL expression.

XML Constant

XML String

Replaces the contents of an element by a constant XML fragment. The element keeps its attributes, but all existing mixed content children are removed. The argument is evaluated once to obtain an XML string. The XML string is parsed for each target node, using the XML Namespace context of that node.

XML Delete

unused

Deletes the XML target nodes. The node itself, its attributes, and all mixed content children are removed.

XML Eval

iFL expression

Replaces an XML element by the result of an iFL expression parsed as XML. The node itself, its attributes, and all mixed content children are removed. The argument is evaluated for each target node processed. The resulting XML String is parsed using the XML Namespace context of the parent node. The first element of the resulting XML fragment is the new element replacing the target node. The new value can depend on the old value because the old element is passed as the root of the document during evaluation. For example, the _XPATH() function can be called to extract values from the old node.

XML Replace

XML String

Replaces an element by a constant XML element. The node itself, its attributes, and all mixed content children are removed. The argument is evaluated once to obtain an XML string. The XML string is parsed for each target node, using the XML Namespace context of the parent of that node. The first element of the resulting XML fragment is the new element replacing the target node.

Zip Keep First 3

unused

Keeps the first three digits of the five digit zip code followed by 00. The four digit code after the hyphen is ignored when present. For example, 10121-2898 becomes 10100.

Zip Keep last 2

unused

Keeps the last two digits of the five digit zip code preceded by 000. The four digit code after the hyphen is ignored when present. For example, 10121-2898 becomes 00021.

Example:

The following example shows the effect of various algorithms. The following table lists the parameter values.

Parameter

Value

Name 1

Sequential SSN

Target Nodes 1

/workforce/employee/ssn

Name 2

Text Constant

Argument 2

John Doe

Target Nodes 2

/workforce/employee/name

Name 3

Text Eval

Argument 3

_sreg(iway.value) - _imod(_sreg(iway.value),10)'-'_sreg(iway.value) - _imod(_sreg(iway.value),10) + 9

Target Nodes 3

/workforce/employee/age

Name 4

XML Constant

Argument 4

<street>1731 Technology Drive</street><city>San Jose</city><state>CA</state><zip>95110</zip>

Target Nodes 4

/workforce/employee/address

Name 5

XML Delete

Target Nodes 5

/workforce/employee/title

The following is a sample input document.

<workforce>
    <employee>
        <name>Harry Smith</name>
        <address>
            <street>2 Penn Plaza</street>
            <city>New York</city>
            <state>NY</state>
            <zip>10121</zip>
        </address>
        <title>Marketing Director</title>
        <age>48</age>
        <ssn>078-05-1120</ssn>
    </employee>
    <employee>
        <name>Mary Dickens</name>
        <address>
            <street>10375 Richmond</street>
            <city>Houston</city>
            <state>TX</state>
            <zip>77042</zip>
        </address>
        <title>Sales Engineer</title>
        <age>48</age>
        <ssn>165-16-7999</ssn>
    </employee>
</workforce>

The resulting service output is shown below.

<workforce>
    <employee>
        <name>John Doe</name>
        <address>
             <street>1731 Technology Drive</street>
            <city>San Jose</city>
            <state>CA</state>
            <zip>95110</zip>
        </address>
        <age>40-49</age>
        <ssn>001-01-0001</ssn>
    </employee>
    <employee>
        <name>John Doe</name>
        <address>
            <street>1731 Technology Drive</street>
            <city>San Jose</city>
            <state>CA</state>
            <zip>95110</zip>
        </address>
        <age>30-39</age>
        <ssn>001-01-0002</ssn>
    </employee>
</workforce>

Top of page

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

Syntax:

com.ibi.agents.XDDocUpdateAgent

iIT Service Object:

document: Doc Update Agent

sreg: Doc Update Agent

transform: Activity Log Control

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: 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 iIT Designer and the corresponding parameters that displays when you add a new Document Update service object to a process flow.

Edges:

The following table lists the available line edges for the Document Update Service (com.ibi.agents.XDDocUpdateAgent).

Line Edge

Description

OnError

Error: 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.

OnSuccess

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

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • fail_operation: An unexpected error occurred while processing the document or the parameters of the service. Check the iSM logs for further details.
  • fail_notfound



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

Top of page

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

Syntax:

com.ibi.agents.XDCopyAgent

iIT Service Object:

control: Document copy

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

Edges:

The following table lists the available line edges for the Document Copy Service (com.ibi.agents.XDCopyAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • cancelled
  • fail_parse


Top of page

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

Syntax:

com.ibi.agents.XDAttachmentFromDocAgent

iIT Service Object:

attachments: Document to Attachment

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

Edges:

The following table lists the available line edges for the Document to Attachment Service (com.ibi.agents.XDAttachmentFromDocAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_attach
  • fail_parse


Top of page

x
DQC Batch Executor Service (com.ibi.agents.XDDQBatchExec)

Syntax:

com.ibi.agents.XDDQBatchExec

iIT Service Object:

DQS: DQS Batch Executor

Description:

This service is used to execute a batch command, which starts an iWay Data Quality Center (DQC) plan.

Parameters:

Parameter

Description

DQC runtime command file *

The path to the runtime command file for iWay DQC. For example, on Windows installations:

DQC_Home\runtime\bin\runcif.bat

where:

DQC_Home

Is the root installation directory for iWay DQC.

Plan File Location *

The fully qualified path to the iWay DQC plan file that must be executed.

Runtime Configuration File Location *

The fully qualified path to the default runtime configuration file.

Additional Path Variable Name(s)

A comma-separated list of additional path variable names. Use this to add additional path variables to the default configuration.

Additional Path Variable Value(s)

A comma-separated list of additional path variable values. Use this to add additional path variable values.

Timeout

Time in seconds for iWay DQC timeout. A value of zero (0) indicates no timeout, which is the default setting.

Edges:

The following table lists the available line edges for the DQC Batch Executor Service (com.ibi.agents.XDDQBatchExec).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_operation
  • fail_parse
  • fail_timeout


Top of page

x
DQC/MDC Flow Linkage Service (com.ibi.agents.MdcAgentISM)

Syntax:

com.ibi.agents.MdcAgentISM

iIT Service Object:

DQS: DQS/MDS Flow Linkage

Description:

This service is used to invokes services in iWay Master Data Center (MDC).

Parameters:

Parameter

Description

XPath Expression

An XPath expression whose evaluation will retrieve one or more elements, each of which will be sent to iWay MDC. Leave blank to send the input document as is.

XPath Syntax *

Determines the syntax level of XPath that should be used. The default option selects the syntax level as set in the General Settings section of the iSM Administration Console. Select one of the following levels from the drop-down list:

  • Default {default}
  • iWay abbreviated syntax {iway}
  • XPath 1.0 full syntax {xpath1}

MDC host *

The host on which the iWay MDC listener is running.

MDC port *

The port on which the iWay MDC listener is running.

Timeout *

Time in seconds for connection timeout. A value of zero (0) indicates no timeout. The default setting is 300 seconds.

Edges:

The following table lists the available line edges for the DQC/MDC Flow Linkage Service (com.ibi.agents.MdcAgentISM).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_operations
  • fail_parse
  • notfound


Top of page

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

Syntax:

com.ibi.agents.XDEmailEmitAgent

iIT Service Object:

emit: Email Emit Agent

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 reply to, 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. This is an exact element name and not an XPATH expression. If the add_attachment tag is defined in the incoming XML document, then provide add_attachment as the value for this parameter and not the XPATH expression to the destination.

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.

Edges:

The following table lists the available line edges for the Email Emit Service (com.ibi.agents.XDEmailEmitAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • fail_connect

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

Top of page

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

Syntax:

com.ibi.agents.XDEntagAgent

iIT Service Object:

misc: Entag Agent

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.

Edges:

The following table lists the available line edges for the Entag Service (com.ibi.agents.XDEntagAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse

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>

Top of page

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 Integration Tools 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.

Edges:

The following table lists the available line edges for the Execute ETL Service (com.ibi.agents.XDETLAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_connect
  • fail_parse


Top of page

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

Syntax:

com.ibi.agents.XDFailAgent

iIT Service Object:

misc: Fail or cause retry of the message of the flow

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 values from the drop-down list:

  • fail
  • retry

The default value is fail.

Message

The message to be issued to the user.

Bypass Catch Processing

On failure, determines whether to bypass upper-level Catch nodes. Select one of the following values from the drop-down list:

  • true. Immediately ends this process thread with an uncatchable termination, bypassing error processing.
  • false. Allows the Fail service to participate in normal catch error handling.

The default value is true.

The setting of this parameter has no effect on process flows with no Catch nodes, or when issued within the execution of a single Catch node. When multiple Catch nodes are employed in a process flow, the use of this parameter can impact the execution flow after failure. In this case, the usual setting should be true to cause the fail node to have immediate effect. Setting false will cause the failure request to be processed by upper-level Catch nodes.

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.

The default value is false.

Add Transaction Log Report Message

When set, a transaction log entry (XALOG) is written with the failure message. This causes a message to appear in the transaction log analysis.

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.

Edges:

The following table lists the available line edges for the Fail Service (com.ibi.agents.XDFailAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse

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 no Catch node is found, then the process flow is terminated. If a Catch node is found, then standard catch logic is bypassed unless the Bypass Catch Processing parameter is set to false.

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.


Top of page

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

Syntax:

com.ibi.agents.XDFileAccumAgent

iIT Service Object:

accumulation: File Accumulator

emit: File Accumulator

file: File Accumulator

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.

Edges:

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.

The following table lists the available line edges for the File Accumulator Service (com.ibi.agents.XDFileAccumAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse: The configuration could not be performed. Often this is generated by an invalid iFL statement.
  • fail_operation: The write could not be completed. This may be a file access issue.
  • fail_notfound: The file to be written could not be located. This may be a path issue


Top of page

x
File Append Accumulation (com.ibi.agents.XDFileAppendAgent)

Syntax:

com.ibi.agents.XDFileAppendAgent

Description:

As information is presented to this agent, it is appended to a named file.

Parameters:

Parameter

Description

Source of Data

If empty, the input data is used. Otherwise, the source of the data to write can be specified, for example, as an xpath expression.

Destination File Path

The full path to the file where the data is to be appended. If the file is not open for the append operation, it is created or opened as appropriate.

Close File

A value that, when true, causes the file to be closed. In a streaming mode, the iFL expression _iseos() can close the file at the end of a stream, however other expressions can be used. No data is stored when this value is true.

Return

Shows what should be returned from the agent. For example:

  • status. A status document from the flow.
  • input. Emit the original input received by this agent.

Want EOS

Asks whether this agent be called at EOS. If the Close File parm is configured to test EOS, then this must be true. If another approach is used, such as detecting the end of a batch of input, then this may not need to be set to true.

Available Response Edges:

Line Edge

Description

success

The data was appended to the file.

fail_parse

Invalid iFL expression.

fail_notfound

The file path cannot be located.

fail_operation

The append operation failed.

This service agent differs from the appending agent offered by the file accumulation agent and the file ops agent, in that the target file remains open. It is the responsibility of the application to close the file, checking with the Close File configuration value set to true.


Top of page

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

Syntax:

com.ibi.agents.XDFileDirListAgent

iIT Service Object:

file: File Directory Contents

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:\iway70" 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">iway70.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>

Edges:

The following table lists the available line edges for the File Directory Contents Service (com.ibi.agents.XDFileDirListAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success: the directory document was produced.

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • 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. Access permissions will also produce this edge.


Top of page

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

Syntax:

com.ibi.agents.XDFileEmitAgent

iIT Service Object:

emit: File Emit Agent

file: File Emit Agent

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.

Edges:

The following table lists the available line edges for the File Emit Service (com.ibi.agents.XDFileEmitAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • fail_operation
  • notfound

Example:

The following is an example of configuration settings for a File Emit service object in iIT 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>

Top of page

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

Syntax:

com.ibi.agents.XDFileReadAgent

iIT Service Object:

file: File Read Agent

read: File Read Agent

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 tagging is performed. If used, the output is XML.

Encoding

Encoding to be performed on the input. Can be as is 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

Edges:

The following table lists the available line edges for the File Read Service (com.ibi.agents.XDFileReadAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • locked
  • directory
  • notfound
  • fail_parse
  • fail_operation

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


Top of page

x
FTP and SFTP Services

iWay FTP and SFTP (SSH/secure) services provide tools that simplify the development and implementation of applications where file transport services are required. iWay Service Manager (iSM) provides the following FTP and SFTP services.

FTP Services

SFTP Services

For detailed information on each of these FTP and SFTP services, see the iWay FTP Solutions Development Guide.


Top of page

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

Syntax:

com.ibi.agents.XDHTTPEmitAgent

iIT Service Object:

emit: HTTP Emit Agent

http: HTTP Emit Agent

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.

Edges:

The following table lists the available line edges for the HTTP Emit Service (com.ibi.agents.XDHTTPEmitAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_connect

Example:

The following is an example of configuration settings for an HTTP Emit service object in iIT 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.


Top of page

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

Syntax:

com.ibi.agents.XDNHttpEmitAgent

iIT Service Object:

emit: HTTP Nonblocking Emit

http: HTTP Nonblocking Emit

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 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 HTTP client-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.

Edges:

The following table lists the available line edges for the HTTP Nonblocking Emit Service (com.ibi.agents.XDNHttpEmitAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_connect
  • fail_info
  • fail_redirection
  • fail_client
  • fail_server
  • fail_operation
  • fail_parse
  • fail_request_too_large
  • fail_response_too_large


Top of page

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

Syntax:

com.ibi.agents.XDHTTPReadAgent

iIT Service Object:

http: HTTP Read Agent

read: HTTP Read Agent

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>

Edges:

The following table lists the available line edges for the HTTP Read Service (com.ibi.agents.XDHTTPReadAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_1xx
  • fail_2xx
  • fail_3xx
  • fail_4xx
  • fail_5xx
  • fail_6xx
  • fail_connect
  • fail_operation
  • fail_parse
  • fail_timeout
  • cancelled

Example:

The following is an example of configuration settings for an HTTP Read service object in iIT 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:


Top of page

x
HTTP ReST Routing Service (com.ibi.agents.XDReSTRouteAgent)

Syntax:

com.ibi.agents.XDReSTRouteAgent

iIT Service Object:

http: HTTP ReST Routing Service

Description:

This service routes a ReST request to a process flow based on the request method and path. An HTTP ReST Routing Reviewer (com.ibi.reviewer.XDReSTRouteReviewer) is also provided, which shares the same parameters as the service.

The main purpose of these components is to identify a process flow to execute, given a URI path and the type of the HTTP request. The name of the process flow will be stored in a special register (SREG). In addition to this routing function, some elements in the URI path, and all keys and values in the URI query string, will be stored as SREGs. This functionality will be made available as a service for use within a process flow, but also as a reviewer. This allows for earlier execution in the processing stage to allow conditional routing to handle the execution of the identified process flow.

Parameters:

Parameter

Description

Route File Path *

The path to the XML file describing the route. The file is loaded when the service is first executed and remains in effect until the listener is restarted.

ReST Verb *

The HTTP verb (PUT, POST, DELETE, or GET).

Hint: In nHTTP this is in the SREG called reqType.

URI *

The URI of the incoming HTTP request. In nHTTP, this is stored in the SREG called url. This may include a path and a query string.

Flow Name Register *

An SREG of this name will be created with the name of the process flow to run.

Route Namespace

SREG namespace prefix to use when creating SREGs from path steps, including the process flow name register.

Query Namespace

SREG namespace prefix to use when creating SREGs from the query string portion of the URI.

Output Type

Determines in the event of a routing error, what document should be output from this service. Select one of the following document types:

  • status
  • input

Edges:

The following table lists the available line edges for the HTTP ReST Routing Service (com.ibi.agents.XDReSTRouteAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • fail_notfound
  • fail_route
  • fail_security


Top of page

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

Syntax:

com.ibi.agents.XDInflateAgent

iIT Service Object:

misc: Inflate Agent

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.

Edges:

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.


Top of page

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

Syntax:

com.ibi.agents.XDInsertSAMLAssertionAgent

iIT Service Object:

security: Insert SAML Assertion

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

iIT Service Object:

security: Insert WSSE Timestamp

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

iIT Service Object:

security: Insert WSSE Token

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

iIT Service Object:

emit: Internal Emit Agent

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

Edges:

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:


Top of page

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

Syntax:

com.ibi.agents.XDIsReachable

iIT Service Object:

operations: Is Reachable

http: Is Reachable

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

Edges:

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.


Top of page

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

Syntax:

com.ibi.agents.XDAdapterAgent

iIT Service Object:

defined by adapter

Description:

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

Edges:

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 in the following image.

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

iIT Service Object:

misc: JDBC via driver

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.

Edges:

The following table lists the available line edges for the JDBC Service (com.ibi.agents.XDJdbcAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse

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>

Top of page

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

Edges:

The following table lists the available line edges for the JMS Read Agent (com.ibi.agents.XDJMSReadAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_connect
  • fail_partner
  • fail_parse
  • fail_operation
  • noMessage
  • unknownMessageType


Top of page

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 a period (.) ).

Output format

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

  • Status
  • Xml
  • Asread

Edges:

The following table lists the available line edges for the JMSQ Browse Service (com.ibi.agents.XDJMSBrowse).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_nomessage
  • fail_connect
  • fail_partner
  • fail_parse


Top of page

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

Syntax:

com.ibi.agents.XDJMSQEmitAgent

iIT Service Object:

emit: JMSQ Emit Agent

jms: JMSQ Emit Agent

queue: JMSQ Emit Agent

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

Edges:

The following table lists the available line edges for the JMSQ Emit Service (com.ibi.agents.XDJMSQEmitAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_connect
  • fail_parse


Top of page

x
LDAP Reader Service (com.ibi.agents.LDAPReader)

Syntax:

com.ibi.agents.LDAPReader

iIT Service Object:

LDAP: LDAP Reader

read: LDAP Reader

Description:

This service reads LDAP context that is based on a request document. For more information on configuring LDAP components using iWay Service Manager, see the iWay Service Manager User's Guide.

Parameters:

Parameter

Description

Provider

A URL to identify the LDAP service and the optional root context.

User

A valid user name for the LDAP connection.

Password

A valid password that is associated with the user name for the LDAP connection.

Doc Can Carry Access *

If set to true, then the request document is permitted to carry access information, which overrides the credentials that are set for the configuration of this service. By default, this parameter is set to false.

Context

The initial context from the URL point.

Filter

A search filter that can be specified to limit the scope.

Edges:

The following table lists the available line edges for the LDAP Reader Service (com.ibi.agents.LDAPReader).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • fail_connect


Top of page

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

Syntax:

com.ibi.agents.XDLegacyRecordToXMLAgent

iIT Service Object:

operations: Legacy Record to XML Converter

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.

Edges:

The following table lists the available line edges for the Legacy Record to XML Converter Service (com.ibi.agents.XDLegacyRecordToXMLAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • fail_operation



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

iIT Service Object:

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.

Edges:

The following table lists the available line edges for the Local Master Service (com.ibi.agents.LocalMasterAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • fail_operation


Top of page

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

Syntax:

com.ibi.agents.XDMailAttachAgent

iIT Service Object:

misc: Mail Attach Agent

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.

Edges:

The following table lists the available line edges for the Mail Attach Service (com.ibi.agents.XDMailAttachAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • fail_operation

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


Top of page

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

Syntax:

com.ibi.agents.XDMarkAttachAgent

iIT Service Object:

misc: Mark Attach Agent

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.

Edges:

The following table lists the available line edges for the Mark Attach Service (com.ibi.agents.XDMarkAttachAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_attach


Top of page

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

Syntax:

com.ibi.agents.XDMarshallAgent

iIT Service Object:

exit preemit: Marshall Agent

misc: Marshall Agent

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 Unmarshall Service (com.ibi.agents.XDUnmarshallAgent).


Top of page

x
MLLP Emit Service (com.ibi.agents.XDMLLPEmitAgent)

Syntax:

com.ibi.agents.XDMLLPEmitAgent

Description:

This service emits a message using the Minimal Lower Layer Protocol (MLLP). This protocol allows you to wrap an HL7 message with a header and footer to ensure you know where a message starts, where a message stops, and where the next message starts.

Parameters:

Parameter

Description

Host *

The machine name or IP address of the MLLP destination.

Port *

The designated TCP/IP port that is being used to receive MLLP messages.

Secure Connection

Select true from the drop-down list if you want use a secure connection through Secure Sockets Layer (SSL). By default, this parameter is set to false.

SSL Context Provider

If configured, specify the name of an available iWay Security Provider for SSL Context. If the Secure Connection parameter is set to true and the SSL Context Provider field is blank, then the default provider will be used.

Set TCP No Delay

If set to true, then Nagle's Algorithm on the client socket will be disabled. This will result in faster line turnaround at the expense of an increased number of packets. By default, this parameter is set to false.

Socket Timeout

The timeout value in seconds. When a non-zero timeout value is specified, a read() function call on the socket will block for only the amount of time specified (in seconds). If the timeout expires, a java.net.SocketTimeoutException is generated. The default timeout is dependent on the operating system being used.

Persistence

If set to true, then iWay Service Manager (iSM) is instructed to maintain the connection.

Persistence Timeout value in Minutes

The maximum length of time (in minutes) that a connection can persist with no activity. If this parameter value is zero (0) or left blank, then the default is set to 60 minutes.

Retry Count

The number of times to try to send the message after an initial failure is encountered. By default, this parameter is set to 0.

Retry Pause

The amount of time (in milliseconds) to wait between retry attempts. By default, this parameter is set to 1000.

Start Block Character

The encoding of the Start of Block character in decimal, octal, or hexadecimal format. The default is 0x0B.

End Block Character

The encoding of the End of Block character in decimal, octal, or hexadecimal format. The default is 0x1C.

Maximum Message Size

The maximum size of a message that can be sent or received through this emitter. If this parameter value is zero (0) or left blank, then the default is set to 256KB.

Output Document

Determines whether the output document is a response document, status document, or the original input document. By default, this parameter is set to response.


Top of page

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

Syntax:

com.ibi.agents.XDMoveAgent

iIT Service Object:

control: Move Agent transfers input to output

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.

Edges:

The following table lists the available line edges for the Move Service (com.ibi.agents.XDMoveAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • cancelled


Top of page

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

Syntax:

com.ibi.agents.XDMQEmitAgent

iIT Service Object:

misc: MQ Emit Agent

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.

Edges:

The following table lists the available line edges for the MQ Emit Service (com.ibi.agents.XDMQEmitAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • fail_connect
  • fail_security


Top of page

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

Syntax:

com.ibi.agents.XDMQReadAgent

iIT Service Object:

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.

Edges:

The following table lists the available line edges for the MQ Read Service (com.ibi.agents.XDMQReadAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_connect
  • fail_parse
  • fail_operation
  • fail_timeout


Top of page

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

Syntax:

com.ibi.agents.XDMSMQEmitAgent

iIT Service Object:

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

Queue (required)

The name of the output queue.

Correlation ID

The Correlation ID that should be used.

Priority

The outgoing message priority, which can also be specified as XPATH(). The value must be between 0 and 9, with 9 indicating most expedited.

Transactional

If set to true, then the queue will be treated as Transactional.

The default value is false.

Delivery Method

Specifies the delivery method that should be used. Selecting express does not guarantee arrival, but is processed faster.

The default value is recoverable.

Message Label

The message label is equivalent to an email subject or JMS topic.

Preemitter

Determines whether any preemitter be avoided.

The default value is true.

Return

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

  • status {status}. The status document will become the output document.
  • original {input}. The original input document will become the output document

The default value is status.

Edges:

The following table lists the available line edges for the MSMQ Emit Service (com.ibi.agents.XDMSMQEmitAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • fail_operation


Top of page

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

Syntax:

com.ibi.agents.XDMTOMAgent

iIT Service Object:

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. Reconstruction converts the received MTOM message into a message format that can be handled by the attachment capabilities of the server.

Parameters:

Parameter

Description

Operation

Select one of the following specific operations to perform from the drop-down list:

  • Reconstruct the original message {reconstruct}

    Reconstructs the original XML message document by replacing the MTOM references with the actual binary content found in the attachments.

  • Create an MTOM package {create}

    Creates an MTOM message by replacing the contents of some binary elements with references to body parts in a new multipart attachment.

  • Add an Include {include}

    Assumes the document is already an MTOM message and replaces one more binary element with a reference to a new body part.

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.

XPath Syntax

Determines the syntax level of XPath that should be used. The default option selects the syntax level as set in the General Settings section of the iSM console. Select one of the following syntax levels from the drop-down list:

  • Default {default}
  • iWay abbreviated syntax {iway}
  • XPath 1.0 full syntax {xpath1}

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.

The edges returned are listed in the following table:

Edge

Description

success

The operation completed successfully.

fail_parse

Parameters to the service were invalid.

fail_operation

The MTOM operation cannot be completed. This can be caused by attempting to reconstruct a non-MTOM message.


Top of page

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

Syntax:

com.ibi.agents.XDNodeSetExtractAgent

iIT Service Object:

misc: Node Set Extract Agent

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.

Edges:

The following table lists the available line edges for the Node Set Extract Service (com.ibi.agents.XDNodeSetExtractAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse

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>

Top of page

x
OAuth 1.0 Authentication Service (com.ibi.agents.XDOAuth1Agent)

Syntax:

com.ibi.agents.XDOAuth1Agent

iIT Service Object:

http: OAuth Authentication

security: OAuth Authentication

Description:

This service creates the HTTP Authorization header for OAuth 1.0a as specified in RFC5849. This RFC describes a 3-legged protocol where the user authorizes the client application to access a protected resource hosted by a service provider.

For more information on configuring and using the OAuth 1.0 Authentication Service (com.ibi.agents.XDOAuth1Agent), see the iWay Service Manager Security Guide.

Edges:

The following table lists the available line edges for the OAuth 1.0 Authentication Service (com.ibi.agents.XDOAuth1Agent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • fail_operation


Top of page

x
OAuth 2.0 Authentication Service (com.ibi.agents.XDOAuth2Agent)

Syntax:

com.ibi.agents.XDOAuth2Agent

iIT Service Object:

http: OAuth 2.0 Authentication

security: OAuth 2.0 Authentication

Description:

This service emits an HTTPS request authenticated by OAuth 2.0 using the credentials of a Google service account. OAuth 2.0 is described in RFC6749 and RFC6750. It is an authorization framework that enables an application to obtain access to an HTTP resource.

For more information on configuring and using the OAuth 2.0 Authentication Service (com.ibi.agents.XDOAuth2Agent), see the iWay Service Manager Security Guide.

The following table lists the available line edges for the OAuth 2.0 Authentication Service (com.ibi.agents.XDOAuth2Agent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • fail_operation


Top of page

x
OpenRules Decision Service (com.ibi.agents.XDOpenRulesDecisionAgent)

Syntax:

com.ibi.agents.XDOpenRulesDecisionAgent

Description:

This service executes the specified OpenRules decision using user-defined parameters as input. Specify the parameters as:

<object>.<attribute>

Parameters:

Parameter

Description

OpenRules File *

The main .xls file that contains the decision to be executed.

Decision Name *

The OpenRules decision to execute.

Decision Objects Package *

The Java package where the decision classes reside.

Input Date Format

The date format pattern to validate input date values. Use Java SimpleDateFormat syntax or leave blank for the locale default pattern.


Top of page

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

Syntax:

com.ibi.agents.XDPFlowAgent

iIT Service Object:

misc: P Flow Agent

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.

Edges:

The following table lists the available line edges for the P Flow Service (com.ibi.agents.XDPFlowAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • fail_notfound
  • fail_timeout

Example:

In a use case scenario, the process flow 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 iIT 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.


Top of page

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

Syntax:

com.ibi.agents.XDPFlowTestAgent

iIT Service Object:

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

iIT Service Object:

format: Parse to XML

operations: Parse to XML

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.

Edges:

The following table lists the available line edges for the Parse to XML Service (com.ibi.agents.XDToXML).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse: the output will consist of the original input document.

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

iIT Service Object:

misc: PF File Ops Agent

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.

Edges:

The following table lists the available line edges for the PF File Operations Service (com.ibi.agents.XDPFFileOpsAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • fail_notfound
  • fail_operation

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>

Top of page

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

Syntax:

com.ibi.agents.XDPFFileReadAgent

iIT Service Object:

misc: PF File Read Agent

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.

Edges:

The following table lists the available line edges for the PF File Read Service (com.ibi.agents.XDPFFileReadAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse


Top of page

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

Syntax:

com.ibi.agents.XDPreemitAgent

iIT Service Object:

emit: Preemitter in Flow

operations: Preemitter in Flow

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.

Edges:

The following table lists the available line edges for the Preemitter in Flow Service (com.ibi.agents.XDPreemitAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_preemit

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>

Top of page

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

Syntax:

com.ibi.agents.XDPrintEmitAgent

iIT Service Object:

emit: Print Emit Agent

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.

Edges:

The following table lists the available line edges for the Print Emit Service (com.ibi.agents.XDPrintEmitAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

OnSuccess


Top of page

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

Syntax:

com.ibi.agents.XDPropertyUpdater

iIT Service Object:

misc: Properties file updater

Description:

This service updates a properties file with one or more properties. The properties file can be read by the _property() iWay Functional Language (iFL) function, or by any appropriate 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, then it will be created.

Call at EOS?

In a streaming environment, End of Stream (EOS) 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.

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, then the property is deleted from the file.

Edges:

The following table lists and describes the line edges that are returned by the Properties File Updater service (com.ibi.agents.XDPropertyUpdater).

Edge

Description

success

The properties file was updated.

fail_notfound

The properties 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.

Example:

When using the Properties File Updater service (com.ibi.agents.XDPropertyUpdater) as an object in a process flow, this service focuses on the user parameters that are defined within the input document. You can pass any input document to this service.

Consider the following user parameters, which consist of simple name/value pairs:

The Properties File Updater service will create or update these specific user parameters in the input document.

A typical use case would be to use XPath to set the values of the user parameters. For example, if your input document looked like the following:

<props><first>John</first><second>Chris</second><third>Mary</third></props>

You might define the user parameters as follows:


Top of page

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.


Top of page

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

Syntax:

com.ibi.agents.XDQAAgent

iIT Service Object:

group Debug: QA Agent

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

Note: The inbound document must be a flat file in order for this parameter to function as described.

Maximum Length

If set, 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.

Edges:

The following table lists the available line edges for the QA Service (com.ibi.agents.XDQAAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse


Top of page

x
RabbitMQ Emit Service (com.ibi.agents.XDRabbitMQEmitAgent)

Syntax:

com.ibi.agents.XDRabbitMQEmitAgent

Description:

This service emits a document to a RabbitMQ server using version 0-9-1 of the Advanced Message Queuing Protocol (AMQP). The Broker URI is the server address. The destination is a combination of the Outgoing Exchange Name and the Routing Key.

The Broker URI has the following format:

scheme://host:port/virtualhost

The scheme is AMQP for communication in clear with the port defaulting to 5672. For secure communication over TLS, the scheme is AMQPS with the port defaulting to 5671. The virtual host is a RabbitMQ concept that allows multiple configurations for the same RabbitMQ server. When /virtualhost is not specified, the virtual host defaults to /. The syntax scheme://host:port is the only way to specify / as the virtual host, since ending the URI with / is not allowed.

When using AMQPS, the TLS configuration is specified with an SSL Context provider. This provider is created in the iSM Administration Console within the Security Provider page under the Server tab.

The user name and password are the credentials to access the RabbitMQ server. The user is created in the RabbitMQ console within the Users page under the Admin tab. Make sure the user is given permission to access the chosen virtual host. The RabbitMQ console can usually be accessed at:

http://host:15672

In version 0-9-1 of AMQP, the message is not sent directly to a queue. Instead, the sender sends the message to an exchange and associates a Routing Key. It is the responsibility of the exchange to route the message to all the queues with a binding that matches the message and the routing key. The queue bindings are part of the exchange configuration on the server. The matching rule depends on the exchange type as follows.

Exchange Type

Matching Rule

direct

The routing key must equal the binding key.

fanout

The routing key is ignored and the binding always matches.

headers

The routing key is ignored. The binding specifies a header name and the value it must have to match. It is possible to specify multiple headers at the same time, in which case the x match attribute determines if 'any' or 'all' headers must match.

topic

The routing key is matched with wildcards.

The Mandatory property determines what happens when the message does not match any queue bindings and therefore was routed to zero queues. When this happens, an error is returned if mandatory is set, otherwise the message is silently discarded.

The RabbitMQ Emit Service expects the exchange, the queue bindings, and the destination queues to be pre-configured on the server. The service does not declare those objects automatically.

AMQP defines a set of properties that are always part of the message. Most properties are open to interpretation by the receiving application. These are: App ID, Content Encoding, Content Type, Correlation ID, Message ID, Response Reply To, Timestamp, Type and User ID. For example, the RabbitMQ server considers the payload to be a byte string. The receiving application may use the Content Encoding and Content Type to reconstruct the message, but that is just by convention.

The properties that affect the broker are: Delivery Mode, Expiration and Priority. The delivery mode is Persistent or Non-Persistent. Persistent messages held in a durable queue will survive a broker restart.

The Expiration is the time the message can remain in the queue before it expires. Expired messages are either discarded or dead-lettered, but only when they reach the head of the queue. Until then, they occupy storage and are counted in the queue statistics. The Priority affects the order messages are delivered by a priority queue. The AMQP specification says the priority is from 0 to 9 but RabbitMQ supports priorities from 0 to 255.

Unlike message properties, message headers are not standardized. They are under the sending application control. When the Request Header Namespace is specified, every special register of type HDR it contains will create a message header of the same name. For example, if the Request Header Namespace is ns and there is special register of type HDR called ns.hdr1 with value v1, then a message header called hdr1 will be created with value v1.

The Avoid Preemitter parameter determines whether preemitters will be executed. The default is to skip the preemitters.

The Return Document parameter determines the contents of the output document. Choose status to return a status document, or input to return the input document of the service.

Parameters:

The following table describes the parameters of the RabbitMQ Emit service (com.ibi.agents.XDRabbitMQEmitAgent).

Parameter

Description

Outgoing Exchange Name

The exchange where the outgoing message will be published.

Broker URI *

The Broker URI, in the following format:

scheme://host:port/virtualhost

where:

scheme

Is AMQP or AMQPS.

port

Is optional defaulting to 5672 for AMQP and 5671 for AMQPS.

virtualhost

Is also optional.

SSL Context Provider

The iWay Security Provider for SSL Context. If you are using AMQPS and SSL Context Provider is left blank, then the default provider will be used.

User *

User ID for the Broker.

Password *

Password that is associated with the user ID for the Broker.

Routing Key

The routing key of the outgoing message.

Mandatory

Determines what happens when a message is routed to zero queues. When set to true, an error is returned. When set to false, the message is discarded.

By default, this parameter is set to false.

App ID

Creating application ID.

Content Encoding

MIME Content Encoding of the payload.

Content Type

MIME Content Type of the payload.

Correlation ID

Application correlation identifier.

Delivery Mode

Determines whether the message is persistent (2) or non-persistent (1).

By default, this parameter is set to 1 (persistent).

Expiration

The message time to live in the queue, non-negative integral number of milliseconds.

Message ID

Application message identifier.

Priority

Message priority (0 to 255).

Response Reply To

Destination to reply to this response.

Timestamp

The value of the timestamp property in the outgoing message, in milliseconds since the epoch.

Type

Message type name.

User ID

Creating user ID.

Request Header Namespace

The special register namespace from which protocol headers for the outbound request will be taken.

By default, this parameter is set to none.

Avoid Preemitter

Determines whether any preemitter should be avoided.

By default, this parameter is set to true.

Return Document

Determines whether the output document will be a status document or the input document.

By default, this parameter is set to status.

Edges:

The following table lists and describes the line edges that are returned by the RabbitMQ Emit service (com.ibi.agents.XDRabbitMQEmitAgent).

Line Edge

Description

success

The message was successfully sent.

fail_parse

An iFL expression could not be evaluated.

fail_connect

The service could not connect to the broker.

fail_operation

The operation could not be completed successfully.


Top of page

x
RabbitMQ Read Service (com.ibi.agents.XDRabbitMQReadAgent)

Syntax:

com.ibi.agents.XDRabbitMQReadAgent

Description:

This service reads a single message from a RabbitMQ queue using version 0-9-1 of the Advanced Message Queuing Protocol (AMQP).

The Broker URI has the following format:

scheme://host:port/virtualhost

The scheme is AMQP for communication in clear with the port defaulting to 5672. For secure communication over TLS, the scheme is AMQPS with the port defaulting to 5671. The virtual host is a RabbitMQ concept that allows multiple configurations for the same RabbitMQ server. When /virtualhost is not specified, the virtual host defaults to /. The syntax scheme://host:port is the only way to specify / as the virtual host, since ending the URI with / is not allowed.

When using AMQPS, the TLS configuration is specified with an SSL Context provider. This provider is created in the iSM Administration Console within the Security Provider page under the Server tab.

The user name and password are the credentials to access the RabbitMQ server. The user is created in the RabbitMQ console within the Users page under the Admin tab. Make sure the user is given permission to access the chosen virtual host. The RabbitMQ console can usually be accessed at:

http://host:15672

The Queue Name identifies which queue will be read.

The Timeout is the period to wait in milliseconds for the message to become available. When the timeout expires, the service returns the input document with the edge noMessage. A value of zero (0) indicates to return immediately.

Parameters:

The following table describes the parameters of the RabbitMQ Read service (com.ibi.agents.XDRabbitMQReadAgent).

Parameter

Description

Broker URI *

The Broker URI, in the following format:

scheme://host:port/virtualhost

where:

scheme

Is AMQP or AMQPS.

port

Is optional defaulting to 5672 for AMQP and 5671 for AMQPS.

virtualhost

Is also optional.

SSL Context Provider

The iWay Security Provider for SSL Context. If you are using AMQPS and SSL Context Provider is left blank, then the default provider will be used.

User *

User ID for the Broker.

Password *

Password that is associated with the user ID for the Broker.

Queue Name *

The name of the queue from which messages will be consumed.

Request Header Namespace

The special register namespace into which protocol headers from the incoming request will be saved.

By default, this parameter is set to Default Namespace.

Timeout

Period to wait in milliseconds for the message to become available. A value of zero (0) indicates to return immediately.

By default, this parameter is set to 5000.

Special Registers (SREGs):

There is a fixed list of message properties as documented in the AMQP specification. The service stores these properties in Special Registers (SREGs) in the AMQP namespace.

The following table describes the SREGs assigned by the RabbitMQ Read service based on the properties in the message envelope.

SREG Name

Description

amqp.deliveryTag

The server-assigned and channel-specific delivery tag.

amqp.exchange

The name of the exchange that routed this message.

amqp.routingKey

The key used to route this message.

amqp.isRedeliver

The boolean redelivery flag.

The following table describes the special registers assigned by the RabbitMQ Read service based on the properties in the message.

SREG Name

Description

amqp.appId

Creating application ID.

amqp.contentEncoding

MIME content encoding.

amqp.contentType

MIME content type.

amqp.correlationId

Application correlation identifier.

amqp.deliveryMode

A value of 1 indicates non-persistent. A value of 2 indicates persistent.

amqp.exiration

Message time to live in the queue, integer >= 0 in milliseconds.

amqp.messageId

Application message identifier.

amqp.priority

Message priority, 0 to 255.

amqp.replyTo

Destination to reply to.

amqp.timestamp

Message timestamp, number of seconds since the epoch.

amqp.type

Message type name.

amqp.userId

Creating user ID.

Unlike message properties, message headers are not standardized. They are under the sending application control. When present, message headers are stored as special registers in the specified Request Header Namespace. For example, if a header is named hdr1 and the Request Header Namespace is ns, then the special register will be called ns.hdr1.

Edges:

The following table lists and describes the line edges that are returned by the RabbitMQ Read service (com.ibi.agents.XDRabbitMQReadAgent).

Line Edge

Description

success

The message was successfully sent.

fail_parse

An iFL expression could not be evaluated.

fail_connect

The service could not connect to the broker.

fail_operation

The operation could not be completed successfully.

fail_partner

The operation failed because of an error from the peer.

noMessage

The timeout expired before a message became available.


Top of page

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.

Edges:

The following table lists the available line edges for the Route Service (com.ibi.agents.XDRouteAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse


Top of page

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

Syntax:

com.ibi.agents.XDRuleRouterAgent

iIT Service Object:

misc: EDI Rule Router

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.

Edges:

The following table lists the available line edges for the Rule Router Service (com.ibi.agents.XDRuleRouterAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure


Top of page

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

Syntax:

com.ibi.agents.XDRunCmdAgent

iIT Service Object:

operations: Runs a system (OS Shell) command if possible.

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.

Edges:

The following table lists the available line edges for the Run OS Shell Command Service (com.ibi.agents.XDRunCmdAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • fail_operation
  • fail_timeout

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:


Top of page

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

Syntax:

com.ibi.agents.XDSREGDocAgent

iIT Service Object:

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.

No Activity Log *

If set, this register will not be logged in an activity log. Some drivers will not respect this setting.

True (default): activity will not be logged.

False: activity will be logged.

No Marshal *

If set, this register will not be marshalled for transfer, for example, through a gateway, pending storage, or AFTI.

True (default): will not be marshalled.

False: will be marshalled.

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.


Top of page

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

Syntax:

com.ibi.agents.XDSREGTreeAgent

iIT Service Object:

Description:

This service stores XML to a special register (SREG), or reloads the XML tree from an SREG. Usually this agent is used to build an XML segment that is then added to the document on the edge at this moment.

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.

Edges:

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.


Top of page

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

Syntax:

com.ibi.agents.XDDocAgent

iIT Service Object:

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:

The following table lists the available line edges for the Set Document State (com.ibi.agents.XDDocAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • fail_cancelled
  • fail_encoding


Top of page

x
Snip Service (com.ibi.agents.XDSnipAgent)

Syntax:

com.ibi.agents.XDSnipAgent

iIT Service Object:

misc: Snip Agent

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.

Edges:

The following table lists the available line edges for the Snip Service (com.ibi.agents.XDSnipAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • duplicate
  • notfound

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>

Top of page

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

Syntax:

com.ibi.agents.XDSonicEmitAgent

iIT Service Object:

misc: Sonic Emit Agent

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.

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.

Edges:

The following table lists the available line edges for the Sonic Emit Service (com.ibi.agents.XDSonicEmitAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_connect


Top of page

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.

Edges:

The following table lists the available line edges for the Sonic Queue Browser Service (com.ibi.agents.XDSonicBrowseAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure


Top of page

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

Syntax:

com.ibi.agents.XDSonicReadAgent

iIT Service Object:

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.

Edges:

The following table lists the available line edges for the Sonic Read Service (com.ibi.agents.XDSonicReadAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure


Top of page

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.

Edges:

The following table lists the available line edges for the SP Router Service (com.ibi.agents.XDSPRouter).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure


Top of page

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.

Edges:

The following table lists the available line edges for the Split Service (com.ibi.agents.XDSplitAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure


Top of page

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.

Edges:

The following table lists the available line edges for the Split To MQ Service (com.ibi.agents.XDSplitToMQAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_connect


Top of page

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

Syntax:

com.ibi.agents.XDSQLInsert

iIT Service Object:

SQL: SQL Batch Row Insert

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.

Edges:

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

iIT Service Object:

SQL: SQL Agent

Description:

The SQL 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 Data Manipulation Language (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 SQL Service supports stored procedures containing a mix of input, output, and IN OUT parameters. To use a stored procedure with output parameters, you must describe each output parameter that is expected. The values returned by these parameters are stored in the response document generated by this service. The syntax for an output parameter is:

?$type(options).name

where:

options

Is optional.

name

Is optional.

The syntax for an IN OUT parameter is:

?#type(option).name

The type must be set to one of the constants listed in the following table.

JDBC Type

Constant

Option

BLOB

blob

CHAR

char

CLOB

clob

DATE

date

INTEGER

int

SQLXML

xml

TIMESTAMP

tstamp

VARCHAR

varchar

CURSOR (Oracle)

cursor

Numeric

numeric

scale

Decimal

decimal

scale

Input parameters follow the normal syntax for passing information into the DML.

For example, call a stored procedure named sp1 with a string input (perhaps a key) and receive an output of int, numeric, and a result set (Oracle):

{call ?int.result = sp1(?inkey,?$numeric(2).cost,?$cursor)}

This will return three output parameters (see formats below), indexed 1 (result), 2 (cost), and a result set.

A stored procedure that uses an input parameter might accept a partial key, and return the complete key along with the other data. For example:

{call sp1(?#varchar.inkey,?$numeric(2).cost,?$cursor)}

In either case, you would configure inkey as an input parameter as if it were simply ?inkey, and the value will also appear as an output parameter.

Examples of using out and IN OUT parameters with stored procedures are provided in Examples of Using the SQL Service With Stored Procedure Calls and Output Parameters.

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 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
Examples of Using the SQL Service With Stored Procedure Calls and Output Parameters

When using the SQL Service to execute any stored procedure with parameters, iWay Software recommends that the service be configured to use the bind issuance strategy. However, when a procedure has output parameters, the bind strategy must be used.



x
Calling a Stored Procedure With Input and Output Parameters

The following Oracle procedure accepts a varchar as input and returns a varchar and a date as output values:

Create or Replace Procedure HELLO_TODAY 
( P_NAME IN VARCHAR2,  
  P_HELLO OUT VARCHAR2,
  P_TODAY OUT DATE
) 
AS 
BEGIN
  SELECT CURRENT_DATE INTO P_TODAY FROM DUAL;
  P_HELLO := 'Hello ' || P_NAME;
END HELLO_TODAY;

To execute the procedure, the SQL DML is specified as:

{call HELLO_TODAY(?name, ?$varchar, ?$date)}

The following table describes how the three parameters are specified:

Parameter

Description

?name

An input parameter, to which the value of the user parameter name, evaluated at execution time will be bound.

?varchar

An output parameter of type varchar. Note that no name is specified. In the response document, the value of this parameter can be identified from its index.

?date

An output parameter of type date. Again, no name is specified, but the resulting value can be identified from the index of the parameter.

If the procedure executes successfully, the SQL Service will generate the following type of response document:

<iway>
   <response totalrows="0" totalupdate="-1">
      <cncresult>
         <result format="column">
            <outparm index="2" 
                     name="parm2" 
                     type="varchar" 
                     jdbctype="12">Hello Stephen</outparm>
            <outparm index="3" 
                     name="parm3" 
                     type="date" 
                     jdbctype="91">2013-03-08 10:46:10.0</outparm>
         </result>
      </cncresult>
      <timestamp>2013-03-08T15:46:11Z</timestamp>
      <execstatus>0</execstatus>
   </response>
</iway>

Note: The value of the index attribute on the outparm elements refers to the index of the parameter relative to all parameters, not just output.



x
Calling a Stored Procedure With an IN OUT Parameter

The following simple procedure uses the same parameter for both input and output:

Create or Replace Procedure INOUT_HELLO (P_HELLO_NAME IN OUT VARCHAR2) 
AS 
BEGIN
  P_HELLO_NAME := 'Hello ' || P_HELLO_NAME;
END INOUT_HELLO;

The SQL DML for the service can be specified as:

{call INOUT_HELLO(?#varchar.name)}

The IN OUT parameter is specified as:

Parameter

Description

??#varchar.name

This time, the ?# prefix is used to indicate that this is an IN OUT parameter of type varchar. For input, you will bind the value of the user parameter name and you will also use name to identify the output of this parameter in the response document. An IN OUT parameter must be defined with a name.

If the procedure executes successfully, the SQL Service will generate the following type of response document:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<iway>
   <response totalrows="0" totalupdate="-2">
      <cncresult>
         <result format="column">
            <outparm index="1" 
                     name="name" 
                     type="varchar" 
                     jdbctype="12">Hello Stephen</outparm>
         </result>
      </cncresult>
      <timestamp>2013-03-08T19:49:04Z</timestamp>
      <execstatus>0</execstatus>
   </response>
</iway>


x
Calling an Oracle Procedure With an Input and a Cursor Output Parameter

The following procedure returns data from the iWay Business Activity Monitor (BAM) database, based on a pattern passed as an input parameter:

Create or Replace Procedure BAM_ACTIVITY_LIST 
( P_TID IN VARCHAR2  
, P_RC OUT SYS_REFCURSOR 
) 
AS 
BEGIN
 open P_RC for
  select recordkey, recordtype, tstamp from BAM_Activity 
   where TID like P_TID;
END BAM_ACTIVITY_LIST;

To invoke the procedure with the SQL Service, the SQL DML parameter is set as:

{call BAM_ACTIVITY_LIST(?mytid, ?$cursor.tidresult)}

The following table describes how the two parameters are specified:

Parameter

Description

?mytid

An input parameter, to which the value of the user parameter mytid, evaluated at execution time, will be bound.

??$cursor.tidresult

An output parameter that will have the cursor datatype and be identified in the response document as tidresult.

If the service succeeds in executing the procedure and is configured to output its result in column format, then the service will generate the following type of response document:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<iway>
  <response totalrows="28" totalupdate="-1">
    <cncresult>
      <result format="column">
        <outparm index="2" name="tidresult" type="cursor" jdbctype="-10">
          <resultset rowcount="28">
            <colinfo>
              <col length="32" 
                   offset="0" type="1" 
                   typename="char" 
                   label="RECORDKEY">RECORDKEY</col>
              <col length="22" 
                   offset="32" 
                   type="2" 
                   typename="numeric" 
                   label="RECORDTYPE">RECORDTYPE</col>
              <col length="11" 
                   offset="54" 
                   type="93" 
                   typename="tstamp" 
                   label="TSTAMP">TSTAMP</col>
            </colinfo>
            <row>
              <column name="RECORDKEY" 
                      label="RECORDKEY" 
                      type="1" 
                      typename="char">5dc36681b5f742b09d7ebbb10a79ae7e</column>
              <column name="RECORDTYPE" 
                      label="RECORDTYPE" 
                      type="2" 
                      typename="numeric">101</column>
              <column name="TSTAMP" 
                      label="TSTAMP" 
                      type="93" 
                      typename="tstamp">2012-5-10.14.50. 40. 900000000</column>
            </row>
          </resultset>
        </outparm>
      </result>
    </cncresult>
<timestamp>2013-03-08T14:40:17Z</timestamp>
    <execstatus>0</execstatus>
  </response>
</iway>

Note: The resultset is formatted in exactly the same way as if it had been returned from a SELECT statement, except that it becomes a child of the outparm element. Also, note that the name attribute of the output element holds the out parameter name as specified in the SQL DML.


Top of page

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.

Edges:

The following table lists the available line edges for the SREG Service (com.ibi.agents.XDSREGAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse

Example:

The SREG Service can be used to save a state of the current document or a document specific parameter, such as an XPath value. For example, you need to run a transformation on a document, but also want to capture the document first by saving it in a SREG value. In the event of an error during the transformation, you can provide the original document that caused the error.

The service can be invoked using the typical parameter values, as shown in the following image:

The user-defined parameters pane is where the SREGs must be defined, as shown in the following image:

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


Top of page

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

Syntax:

com.ibi.agents.XDSregInsertToDocAgent

iIT Service Object:

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.

Edges:

The following table lists the available line edges for the SREG Insert Service (com.ibi.agents.XDSregInsertToDocAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • none
  • one
  • many

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:/IWAY70~3/" />
</Test>

Top of page

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

Syntax:

com.ibi.agents.XDSREGNamespaceAgent

iIT Service Object:

sreg:

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.

Edges:

The following table lists the available line edges for the SREG Namespace Service (com.ibi.agents.XDSREGNamespaceAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_operation
  • notfound

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.


Top of page

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

Syntax:

com.ibi.agents.SWIFTOutReportAgent

iIT Service Object:

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.

Edges:

The following table lists the available line edges for the SWIFT Out Report Service (com.ibi.agents.SWIFTOutReportAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure


Top of page

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

Syntax:

com.ibi.agents.XDSWIFTTransformAgent

iIT Service Object:

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.

Edges:

The following table lists the available line edges for the SWIFT Transform Service (com.ibi.agents.XDSWIFTTransformAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure


Top of page

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

Syntax:

com.ibi.agents.XDSWIFTValidationReportAgent

iIT Service Object:

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.

Edges:

The following table lists the available line edges for the SWIFT Validation Service (com.ibi.agents.XDSWIFTValidationReportAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure


Top of page

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

Syntax:

com.ibi.agents.XDIWAYSWIFTXMLTransformAgent

iIT Service Object:

SWIFT: SWIFTXMLTransformAgent

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.

Edges:

The following table lists the available line edges for the SWIFT XML Transform Service (com.ibi.agents.XDIWAYSWIFTXMLTransformAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure


Top of page

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

Syntax:

com.ibi.agents.XDTCPEmitAgent

iIT Service Object:

misc: TCP Emit Agent

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.

Edges:

The following table lists the available line edges for the TCP Emit Service (com.ibi.agents.XDTCPEmitAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure

Example:

The following image shows an example of configuration settings for a TCP Emit service object in iIT 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.


Top of page

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

Syntax:

com.ibi.agents.XDTIBRVEmitAgent

iIT Service Object:

misc: TIBRV Emit Agent

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.

Edges:

The following table lists the available line edges for the TIBCO RV Emit Service (com.ibi.agents.XDTIBRVEmitAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_connect


Top of page

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

Syntax:

com.ibi.agents.XDTraceAgent

iIT Service Object:

operations: Trace Message Writer

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.


Top of page

x
Transaction Completion Registration Service (com.ibi.agents.XDTxAgent)

Syntax:

com.ibi.agents.XDTxAgent

iIT Service Object:

operations: Transaction Completion Registration

Description:

This service registers process flows to be executed at commit or rollback instances of the local transaction. These process flows can include compensating logic when an application interacts with non-transactional systems. Input to the process flow will be a copy of input to this service. Any user-defined parameters will be available to the process flow as Special Registers (SREGs) in the process flow scope.

Parameters:

Parameter

Description

Rollback Flow

Process flow to execute if the local transaction is rolled back. This process flow must be published to the system level of the current configuration.

Commit Flow

Process flow to execute if the local transaction is committed. This process flow must be published to the system level of the current configuration.

Services capable of supporting transaction commit/rollback in a process flow automatically respond the success of failure of the process flow as a whole by issuing a commit or rollback accordingly. Examples of such services are the SQL service, MQ Read service, and the MQ Emit service. Other services do not so respond to commit or rollback, either because the underlying service (for example, a Siebel system) does not support transactionality or the operation required must rely on application logic. In such a situation, your flow can register a process flow to be run at transaction commit/rollback (end of the process flow) appropriate to the transactional status. For the most common case (handling a failure by rolling back activity) this is usually referred to as a compensating transaction.

You can register one or more compensating or committing transactions by using the XDTxAgent. Each use will register an event process flow for rollback and/or commit handling. The process flow must be deployed as a system process flow to the configuration/application.

On entry, the process flow will be given the input document that was in effect when the registration service registered the event flow.

You can also enter user variables (Special Registers) to the service, which will be available as flow-level registers when the commit or rollback event flow is invoked. The value seen by the process flow will be the current set that is defined during the registration for that flow.

Edges:

The following table lists the available line edges for the Transaction Completion Registration Service (com.ibi.agents.XDTxAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse
  • fail_notfound


Top of page

x
Transform Service (com.ibi.agents.XDTransformAgent)

Syntax:

com.ibi.agents.XDTransformAgent

iIT Service Object:

transform: Transform Agent

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

Edges:

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 cannot be loaded. Detail: com.mysql.jdbc.Driver</item>
</functionerrors>
</error>

Top of page

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

Syntax:

com.ibi.agents.EvalWalk

iIT Service Object:

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.

Edges:

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:/iway70</Test>

Example 3:

Use XPath to identify a subtree within the incoming document to be evaluated:

/root/interesting_part//*

Top of page

x
UDP Emit Service (com.ibi.agents.XDUDPEmitAgent)

Syntax:

com.ibi.agents.XDUDPEmitAgent

Description:

The UDP Emit service allows you to configure a service to transmit a User Datagram Protocol (UDP) message packet to a specified host.

Parameters:

Parameter

Description

Host

The host name or IP address of the machine to which the UDP message packet will be sent.

Port

The port number of the host to which the UDP message packet will be sent.

Prepend Packet Length

Determines whether to prepend the data packet length. Select one of the following values from the drop-down list.

  • true. The UDP message packet will contain a length prefix. The emitter calculates the binary length of the message. This length is exclusive of the four byte packet length. The length is then prepended to the packet.
  • false. The UDP message packet will not contain a length prefix.

By default, false is selected.

Note: Due to the nature of UDP, the only error checking that is performed is whether the host machine can be reached. Message packets are sent to the host with no guarantee that the packet was received or was processed by the specified host system.


Top of page

x
Unmarshall Service (com.ibi.agents.XDUnmarshallAgent)

Syntax:

com.ibi.agents.XDUnmarshallAgent

iIT Service Object:

exit preparse: Unmarshall Agent

misc: Unmarshall Agent

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.

Edges:

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.


Top of page

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

Syntax:

com.ibi.agents.XDUpdateCorrelEntryAgent

iIT Service Object:

misc: Update Correl Entry Agent

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.

Edges:

The following table lists the available line edges for the Update Correl Entry Service (com.ibi.agents.XDUpdateCorrelEntryAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_operation
  • closed
  • notfound


Top of page

x
Uuencode (com.ibi.agents.XDUUDecodeAgent)

Syntax:

.com.ibi.agents.XDUUDecodeAgent

iIT Service Object

[In progress]

Description:

Uuencode (also called Uuencode/Uudecode) is a popular utility for encoding and decoding files exchanged between users or systems in a network. It originated for use between users of UNIX systems (its name stood for UNIX-to-UNIX encoding). iWay Service Manager (iSM) provides several utility classes for Uuencode and Uudecode documents within a standard process flow or channel architecture.

The XDUUDecodeAgent allows you to Uudecode a document. The Uudecode document exits this agent either as a binary document or as a string document depending on the selection of the Output Format.

Parameters:

Parameter

Description

Output Format

How the uuencoded data is to be handled within the document. You can select either:

  • binary. The Uudecoded byte array and passed on unformatted on to the next agent in the processing flow.
  • string. The Uudecoded byte array is converted into a string and passed on to the next agent in the processing flow.

Call at EOS

Boolean value. When set to true, the agent will be called one last time when the document processing reaches the end of the stream.

Example:

In this example, the document passed into the agent contains the following value:

begin 644 encoded.txt
M5&5S="$-"@T*1V5N=&QE(%)E861E<CH-"@T*5&AI<R!I<R!N;W1H:6YG(&UO
M<F4@=&AA;B!A('1E<W0@9FEL92!C<F5A=&5D('1O('!R;W9I9&4@9F]D9&5R
M(&9O<B!T:&4@=F%R:6]U<R!E;F-O9&EN9R!S8VAE;65S+B!)9B!Y;W4@87)E
M('5S:6YG(&ET('1O('1E<W0L(&-O;F=R871U;&%T:6]N<R!O;B!Y;W5R(&%G
M:6QI='D@:6X@8W5T=&EN9RP@<&%S=&EN9RP@<V%V:6YG+"!A;F0@9&5C;V1I
:;F<@=7-I;F<@5VEN6FEP+@T*#0I%;FIO>2$!
end

The output document appears as shown below:

Test!
Gentle Reader:
This is nothing more than a test file created to provide fodder for the various encoding schemes. If you are using it to test, congratulations on
your agility in cutting, pasting, saving, and decoding using WinZip.
Enjoy!

iFL Function:

_uuencode

Using the Uuencoding function converts a string into a Uuencode buffer. This function works on either a fixed string or data obtained from the Service Manager using an iFL function such as _FILE to read in the data.

The following table shows the parameter and description for the _uuencode iFL function.

Parameter

Description

String

Value to convert (optional).

Note: If a value is not provided, then the current document is used for input.

The following list describes how the uuencode header file name is obtained.

Example 1:

The string to be uuencoded is provided directly to the _uuencode function, as shown in the following image.

Example 2:

The iFL _file function is used in this example to load the file data into the first parameter of the _uuencode function.

The uusample.txt file located in the c:/temp folder contains the following document:

Test!
Gentle Reader:
This is nothing more than a test file created to provide fodder for the various encoding schemes. If you are using it to test, congratulations on
your agility in cutting, pasting, saving, and decoding using WinZip.
Enjoy!

The _uuencode function then converts the buffer into a uuencoded string, as shown in the following image.


Top of page

x
Uuencode (com.ibi.agents.XDUUPreEmitter)

Syntax:

com.ibi.agents.XDUUPreEmitter

iIT Service Object:

[In Progress]

Description:

This pre-emitter allows you to Uuencode the document prior to it being emitted by iWay Service Manager. If you are sending an email with an attachment and you suspect your recipient(s) may not have a MIME-compliant system (for example, an older PC or UNIX system), you can specify Uuencode for the attachment to an email note.

Parameters:

Parameter

Description

File Name

File Name to be used in the UUENCODED header.

Note: This entry is informational only and does not necessarily represent a physical file accessible to the Service Manager. Rather, it is included in the Uuencode header information that is generated.

Example:

The following example shows a simple flat text input document containing flat text:

Test!
Gentle Reader:
This is nothing more than a test file created to provide fodder for the various encoding schemes. If you are using it to test, congratulations on
your agility in cutting, pasting, saving, and decoding using WinZip.
Enjoy!

The output document appears as shown below:

begin 666 encoded.txt
M5&5S="$-"@T*1V5N=&QE(%)E861E<CH-"@T*5&AI<R!I<R!N;W1H:6YG(&UO
M<F4@=&AA;B!A('1E<W0@9FEL92!C<F5A=&5D('1O('!R;W9I9&4@9F]D9&5R
M(&9O<B!T:&4@=F%R:6]U<R!E;F-O9&EN9R!S8VAE;65S+B!)9B!Y;W4@87)E
M('5S:6YG(&ET('1O('1E<W0L(&-O;F=R871U;&%T:6]N<R!O;B!Y;W5R(&%G
M:6QI='D@:6X@8W5T=&EN9RP@<&%S=&EN9RP@<V%V:6YG+"!A;F0@9&5C;V1I
:;F<@=7-I;F<@5VEN6FEP+@T*#0I%;FIO>2$`
`
end

iFL Function:

_uudecode

Using the uudecoding function converts a string from a uuencode buffer back into the original text (or data) representation. This function works on either a fixed uuencoded buffer or data obtained from iWay Service Manager using an iFL function such as _FILE to read in the data.

The following table shows the values and descriptions of the _uudecode functions.

Parameters

Descriptions

String

Value to convert (optional).

Note: If a value is not provided, then the current document will be used for input.

String

Encoding used to convert recovered bytes to a string.

Example:

The following example uses the _file iFL function to load the file data into the first parameter of the _uudecode function. This is shown in the uusample.dat file.

begin 644 encoded.txt
M5&5S="$-"@T*1V5N=&QE(%)E861E<CH-"@T*5&AI<R!I<R!N;W1H:6YG(&UO
M<F4@=&AA;B!A('1E<W0@9FEL92!C<F5A=&5D('1O('!R;W9I9&4@9F]D9&5R
M(&9O<B!T:&4@=F%R:6]U<R!E;F-O9&EN9R!S8VAE;65S+B!)9B!Y;W4@87)E
M('5S:6YG(&ET('1O('1E<W0L(&-O;F=R871U;&%T:6]N<R!O;B!Y;W5R(&%G
M:6QI='D@:6X@8W5T=&EN9RP@<&%S=&EN9RP@<V%V:6YG+"!A;F0@9&5C;V1I
:;F<@=7-I;F<@5VEN6FEP+@T*#0I%;FIO>2$!
end

The _uudecode function then converts the buffer into the following uudecoded string:

Test!
Gentle Reader:
This is nothing more than a test file created to provide fodder for the various encoding schemes. If you are using it to test, congratulations on
your agility in cutting, pasting, saving, and decoding using WinZip.
Enjoy!

Top of page

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

Syntax:

com.ibi.agents.XDWSClientAgent

iIT Service Object:

misc: WS Client Agent

Description:

This service executes a web service and allows a transformation to be applied to the response.

See Web Service HTTP Client Service (com.ibi.agents.XDWSHttpClientAgent) for a version of this service that manages HTTP connections through an HTTP Client provider. This provider offers more security options and improves connection reuse.

Parameters:

Parameter

Description

End point *

The location where the web service has been deployed.

SOAP Action

Value of the SOAPAction header for HTTP.

Content-Type

Value of the Content-Type MIME Header. The default value is:

text/xml

User ID

User ID for Basic Authentication challenges.

Password

Password for Basic Authentication challenges.

Timeout

The timeout value in seconds. The default value is:

0

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. The default value is:

_flatof(false)

Fault Transform

Transformation to apply when a web service fault occurs.

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.

Response Transform

Transformation to apply for the web service response document.

Proxy

Proxy

If enabled, emit through proxy server. By default, this parameter is set to false.

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.

Edges:

The following table lists the available line edges for the Web Service Client Service (com.ibi.agents.XDWSClientAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_operation
  • fail_connect
  • fail_security
  • fail_parse
  • fail_timeout
  • cancelled
  • Standard SOAP fault

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>

Top of page

x
Web Service HTTP Client Service (com.ibi.agents.XDWSHttpClientAgent)

Syntax:

com.ibi.agents.XDWSHttpClientAgent

iIT Service Object:

misc: WS HTTP Client Agent

Description:

This service executes a web service through an HTTP Client provider and allows a transformation to be applied to the response document.

Parameters:

Parameter

Description

End point *

The location where the web service has been deployed.

SOAP Action

Value of the SOAPAction header for HTTP.

Content-Type

Value of the Content-Type MIME Header. The default value is:

text/xml

User ID

User ID for Basic Authentication challenges.

Password

Password for Basic Authentication challenges.

Timeout

The timeout value in seconds. The default value is:

0

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. The default value is:

_flatof(false)

Fault Transform

Transformation to apply when a web service fault occurs.

Strip SOAP Envelope

If set to true, then 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.

Response Transform

Transformation to apply for the web service response document.

HTTP Client Provider *

The HTTP Client provider that manages connections for this web service agent.

Edges:

The following table lists the available line edges for the Web Service HTTP Client Service (com.ibi.agents.XDWSHttpClientAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_connect
  • fail_operation
  • fail_security
  • fail_parse
  • fail_timeout
  • cancelled
  • Standard SOAP fault

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>

Top of page

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

Syntax:

com.ibi.agents.XDX12ValidationReportAgent

iIT Service Object:

EDI: X12 Validation Report Agent

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.

Edges:

The following table lists the available line edges for the X12 Validation Service (com.ibi.agents.XDX12ValidationReportAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure


Top of page

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

Syntax:

com.ibi.agents.XDXALogInquiryByContextAgent

iIT Service Object:

misc: XA Log Inquiry By Context Agent

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.

Edges:

The following table lists the available line edges for the XA Log Inquiry By Context Service (com.ibi.agents.XDXALogInquiryByContextAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_operation


Top of page

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

Syntax:

com.ibi.agents.XDXALogInquiryByDateAgent

iIT Service Object:

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.

Edges:

The following table lists the available line edges for the XA Log Inquiry By Date Service (com.ibi.agents.XDXALogInquiryByDateAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_operation


Top of page

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

Syntax:

com.ibi.agents.XDXALogInquiryByPartnerAgent

iIT Service Object:

misc: XA Log Inquiry By Partner Agent

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.

Edges:

The following table lists the available line edges for the XA Log Inquiry By Partner Service (com.ibi.agents.XDXALogInquiryByPartnerAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_operation


Top of page

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

Syntax:

com.ibi.agents.XDXALogInquiryByTIDAgent

iIT Service Object:

misc: XA Log Inquiry By TID Agent

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.

Edges:

The following table lists the available line edges for the XA Log Inquiry By Transaction ID Service (com.ibi.agents.XDXALogInquiryByTIDAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_operation
  • notfound


Top of page

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

Syntax:

com.ibi.agents.XDXALogMsg

iIT Service Object:

operations: XALOG Message

xalog: XALOG Message

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.


Top of page

x
xCal and iCalendar Conversion Service (com.ibi.agents.XDXCalAgent)

Syntax:

com.ibi.agents.XDXCalAgent

iIT Service Object:

format: Converts between iCalendar and xCal

Description:

This service converts iCalendar to xCal and vice-versa. iCalendar is a format specification for the exchange of calendaring and scheduling data. A common example is an email message containing an iCalendar attachment for a meeting request. iCalendar is defined in the RFC 5545 specification. xCal is the XML format for iCalendar, and is defined in the RFC 6321 specification.

xCal is designed to support the round trip from iCalendar to xCal back into iCalendar without losing semantic information. This allows the application query to update the information in the more convenient XML format, with no loss of information.

Parameters:

Parameter

Description

Operation

Determines which of the following conversions should be performed:

  • iCalendar to xCal
  • xCal to iCalendar

Edges:

The following table lists the available line edges for the xCal and iCalendar Conversion Service (com.ibi.agents.XDXCalAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse: an iFL expression could not be evaluated.
  • fail_operation: the operation could not be completed successfully.

This service requires iCalendar input to be stored as bytes or lines, directly within the input document. As a result, you may require the execution of the Attachment to Document service (com.ibi.agents.XDAttachmentToDocAgent) or the SMIME Unpacker service (com.ibi.agents.XDSMIMEUnpackerAgent) on your input.

xCal input must be stored as parsed XML format within the input document. This service stores iCalendar output as lines, and xCal output as parsed XML within the output document.

An iCalendar stream is composed of one or more VCALENDAR components. In xCal, this is represented by an <icalendar> element containing one or more <vcalendar> elements. iCalendar is mostly case-insensitive, but xCal requires lower-case formatting. For example:

<icalendar xmlns="urn:ietf:params:xml:ns:icalendar-2.0">
  <vcalendar>
  …
  </vcalendar>
</icalendar>

Each component consists of optional properties and optional sub-components. A sub-component has the same structure as a component. In xCal, a component maps to an element of the same name. When present, the properties are grouped within the <properties> element. Similarly, when present, the sub-components are grouped within the <components> element. The <properties> and <components> elements are omitted when empty. For example:

<icalendar xmlns="urn:ietf:params:xml:ns:icalendar-2.0">
  <vcalendar>
    <properties>
      …
    </properties>
    <components>
      …
    </components>
  </vcalendar>
</icalendar>

A property has optional parameters and a value. In xCal, a property maps to an element of the same name. When present, the parameters are grouped within the <parameters> element. The <parameters> element is omitted when empty.

A parameter is a name-value pair. A parameter is converted to an element of the same name.

In general, a property value becomes an element that is named based on the value type, with the textual value as contents. This approach is used because many properties accept values of multiple types. For some specific structured types, the value is converted to named sub-elements instead. A parameter value is treated similarly, but it is always textual.

The following is an example of the tzid parameter within the dtstart property.

<properties>
        <dtstart>
          <parameters>
            <tzid><text>US/Eastern</text></tzid>
          </parameters>
          <date-time>2006-01-02T12:00:00</date-time>
        </dtstart>
        …
      </properties>

iCalendar defines a folding algorithm to limit the line length to under 75 octets. It also defines an escape mechanism for some characters. This service automatically unfolds and unescapes when parsing iCalendar input. Conversely, this service automatically folds and escapes when generating iCalendar output.



x
Example 1

This example shows how a calendar request can be converted to xCal. These instructions describe how to configure a process flow to handle iCalendar attachments in an email message.

Richard Smith is organizing a meeting with John Doe and Jane Roe. It is scheduled for March 4, 2014 and runs weekly for another 5 weeks. He used a calendar application to send this calendar request to the attendees. The multipart/alternative message, is composed of two parts:

From: "Smith, Richard" <Richard_Smith@ibi.com>
To: "Doe, John" <John_Doe@ibi.com>,
	"Roe, Jane" <Jane_Roe@ibi.com>
Date: Mon, 3 Mar 2014 16:59:17 -0500
Subject: group meeting
Content-Type: multipart/alternative;
	boundary="_002_9892EC6224DBC54598164D1F77721D757F4CE39BE7IBIUSMBSBibic_"
MIME-Version: 1.0
Return-Path: Richard_Smith@ibi.com
--_002_9892EC6224DBC54598164D1F77721D757F4CE39BE7IBIUSMBSBibic_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
V2hlbjogT2NjdXJzIGV2ZXJ5IFR1ZXNkYXkgZnJvbSAxMDowMCBBTSB0byAxMTowMCBBTSBlZmZl
Y3RpdmUgMy80LzIwMTQgdW50aWwgNC8xLzIwMTQuIFRoZXJlIGFyZSA1IG1vcmUgb2NjdXJyZW5j
ZXMuIChHTVQtMDU6MDApIEVhc3Rlcm4gVGltZSAoVVMgJiBDYW5hZGEpDQpXaGVyZTogbGFyZ2Ug
Y29uZmVyZW5jZSByb29tDQoNCip+Kn4qfip+Kn4qfip+Kn4qfioNCg==
--_002_9892EC6224DBC54598164D1F77721D757F4CE39BE7IBIUSMBSBibic_
Content-Type: text/calendar; charset="utf-8"; method=REQUEST
Content-Transfer-Encoding: base64
QkVHSU46VkNBTEVOREFSDQpNRVRIT0Q6UkVRVUVTVA0KUFJPRElEOk1pY3Jvc29mdCBFeGNoYW5n
ZSBTZXJ2ZXIgMjAwNw0KVkVSU0lPTjoyLjANCkJFR0lOOlZUSU1FWk9ORQ0KVFpJRDpFYXN0ZXJu
IFN0YW5kYXJkIFRpbWUNCkJFR0lOOlNUQU5EQVJEDQpEVFNUQVJUOjE2MDEwMTAxVDAyMDAwM
A0KVFpPRkZTRVRGUk9NOi0wNDAwDQpUWk9GRlNFVFRPOi0wNTAwDQpSUlVMRTpGUkVRPVlFQVJMWTtJ
TlRFUlZBTD0xO0JZREFZPTFTVTtCWU1PTlRIPTExDQpFTkQ6U1RBTkRBUkQNCkJFR0lOOkRBWUxJ
R0hUDQpEVFNUQVJUOjE2MDEwMTAxVDAyMDAwMA0KVFpPRkZTRVRGUk9NOi0wNTAwDQpUWk9GRlNF
VFRPOi0wNDAwDQpSUlVMRTpGUkVRPVlFQVJMWTtJTlRFUlZBTD0xO0JZREFZPTJTVTtCWU1PTlRI
PTMNCkVORDpEQVlMSUdIVA0KRU5EOlZUSU1FWk9ORQ0KQkVHSU46VkVWRU5UDQpPUkdBTklaRVI7
Q049IlNtaXRoLCBSaWNoYXJkIjpNQUlMVE86UmljaGFyZF9TbWl0aEBpYmkuY29tDQpBVFRFTkRF
RTtST0xFPVJFUS1QQVJUSUNJUEFOVDtQQVJUU1RBVD1ORUVEUy1BQ1RJT047UlNWUD1UUlVFO0NO
PSJEb2UsIEpvaG4NCiAiOk1BSUxUTzpKb2huX0RvZUBpYmkuY29tDQpBVFRFTkRFRTtST0xFPVJF
US1QQVJUSUNJUEFOVDtQQVJUU1RBVD1ORUVEUy1BQ1RJT047UlNWUD1UUlVFO0NOPSJSb2UsIEph
bmUNCiAiOk1BSUxUTzpKYW5lX1JvZUBpYmkuY29tDQpERVNDUklQVElPTjtMQU5HVUFHRT1lbi1V
UzpXaGVuOiBPY2N1cnMgZXZlcnkgVHVlc2RheSBmcm9tIDEwOjAwIEFNIHRvIDExOjANCiAwIEFN
IGVmZmVjdGl2ZSAzLzQvMjAxNCB1bnRpbCA0LzEvMjAxNC4gVGhlcmUgYXJlIDUgbW9yZSBvY2N1
cnJlbmNlcy4gKEdNVA0KIC0wNTowMCkgRWFzdGVybiBUaW1lIChVUyAmIENhbmFkYSlcbldoZXJl
OiBsYXJnZSBjb25mZXJlbmNlIHJvb21cblxuKn4qfip+DQogKn4qfip+Kn4qfip+KlxuDQpSUlVM
RTpGUkVRPVdFRUtMWTtDT1VOVD01O0lOVEVSVkFMPTE7QllEQVk9VFU7V0tTVD1TVQ0KU1VNTUFS
WTtMQU5HVUFHRT1lbi1VUzpncm91cCBtZWV0aW5nDQpEVFNUQVJUO1RaSUQ9RWFzdGVybiBTdGFu
ZGFyZCBUaW1lOjIwMTQwMzA0VDEwMDAwMA0KRFRFTkQ7VFpJRD1FYXN0ZXJuIFN0YW5kYXJkIFRp
bWU6MjAxNDAzMDRUMTEwMDAwDQpVSUQ6MDQwMDAwMDA4MjAwRTAwMDc0QzVCNzEwMUE4MkUwMDgw
MDAwMDAwMDM2RDU1NkQyMkIzN0NGMDEwMDAwMDAwMDAwMDAwMDANCiAwMTAwMDAwMDAyMEFGO
DMwMjVEMjA1RDQ4QjY3OTNCMzhBNzFGQ0JCQg0KQ0xBU1M6UFVCTElDDQpQUklPUklUWTo1DQpEVFNU
QU1QOjIwMTQwMzAzVDIxNTkxNloNClRSQU5TUDpPUEFRVUUNClNUQVRVUzpDT05GSVJNRUQNClNF
UVVFTkNFOjANCkxPQ0FUSU9OO0xBTkdVQUdFPWVuLVVTOmxhcmdlIGNvbmZlcmVuY2Ugcm9vbQ0K
WC1NSUNST1NPRlQtQ0RPLUFQUFQtU0VRVUVOQ0U6MA0KWC1NSUNST1NPRlQtQ0RPLU9XTkVSQVBQ
VElEOjIxMTIwMzUzODINClgtTUlDUk9TT0ZULUNETy1CVVNZU1RBVFVTOlRFTlRBVElWRQ0KWC1N
SUNST1NPRlQtQ0RPLUlOVEVOREVEU1RBVFVTOkJVU1kNClgtTUlDUk9TT0ZULUNETy1BTExEQVlF
VkVOVDpGQUxTRQ0KWC1NSUNST1NPRlQtQ0RPLUlNUE9SVEFOQ0U6MQ0KWC1NSUNST1NPRlQtQ0RP
LUlOU1RUWVBFOjENCkJFR0lOOlZBTEFSTQ0KQUNUSU9OOkRJU1BMQVkNCkRFU0NSSVBUSU9OOlJF
TUlOREVSDQpUUklHR0VSO1JFTEFURUQ9U1RBUlQ6LVBUMTVNDQpFTkQ6VkFMQVJNDQpFTkQ6VkVW
RU5UDQpFTkQ6VkNBTEVOREFSDQo=
--_002_9892EC6224DBC54598164D1F77721D757F4CE39BE7IBIUSMBSBibic_--

The email listener (com.ibi.edaqm.XDPop3Master) reads this email message and stores the main body part in the document. The base64 data is automatically decoded. The listener is configured to keep the document in flat format because it is not XML. The calendar part is not shown in this example because it is stored as an attachment in the document.

When: Occurs every Tuesday from 10:00 AM to 11:00 AM effective 3/4/2014 until 4/1/2014. There are 5 more occurrences. (GMT-05:00) Eastern Time (US & Canada)
Where: large conference room
*~*~*~*~*~*~*~*~*~*

The document attachments are processed one at a time with the help of the Attachment Iterator (com.ibi.agents.XDIterAttachments). The following table lists the parameter values that are used.

Parameter

Value

Start Index

0

Header Namespace

attns

Keep Document Flat

true

If the application knows there will always be one attachment and it will always be an iCalendar attachment, then it can extract it with the Attachment to Document service (com.ibi.agents.XDAttachmentToDocAgent) instead.

The base64 data is automatically decoded. For the first and only attachment, the result is an iCalendar request stored as bytes in the current document.

BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:Microsoft Exchange Server 2007
VERSION:2.0
BEGIN:VTIMEZONE
TZID:Eastern Standard Time
BEGIN:STANDARD
DTSTART:16010101T020000
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=11
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010101T020000
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=2SU;BYMONTH=3
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
ORGANIZER;CN="Smith, Richard":MAILTO:Richard_Smith@ibi.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Doe, John
":MAILTO:John_Doe@ibi.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Roe, Jane
 ":MAILTO:Jane_Roe@ibi.com
DESCRIPTION;LANGUAGE=en-US:When: Occurs every Tuesday from 10:00 AM to 11:0
 0 AM effective 3/4/2014 until 4/1/2014. There are 5 more occurrences. (GMT
 -05:00) Eastern Time (US & Canada)\nWhere: large conference room\n\n*~*~*~
 *~*~*~*~*~*~*\n
RRULE:FREQ=WEEKLY;COUNT=5;INTERVAL=1;BYDAY=TU;WKST=SU
SUMMARY;LANGUAGE=en-US:group meeting
DTSTART;TZID=Eastern Standard Time:20140304T100000
DTEND;TZID=Eastern Standard Time:20140304T110000
UID:040000008200E00074C5B7101A82E0080000000036D556D22B37CF01000000000000000
 01000000020AF83025D205D48B6793B38A71FCBBB
CLASS:PUBLIC
PRIORITY:5
DTSTAMP:20140303T215916Z
TRANSP:OPAQUE
STATUS:CONFIRMED
SEQUENCE:0
LOCATION;LANGUAGE=en-US:large conference room X-MICROSOFT-CDO-APPT-SEQUENCE:0
X-MICROSOFT-CDO-OWNERAPPTID:2112035382
X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-CDO-INSTTYPE:1
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:REMINDER
TRIGGER;RELATED=START:-PT15M
END:VALARM
END:VEVENT
END:VCALENDAR

The xCal and iCalendar service can convert this data into XML format for easier processing.

Since the attachment can be any type, a Switch object is required to check the Content-Type. The expression defined for the Switch object can be:

_lcase(_token(_sreg("attns.Content-Type"), ";"))

Notice the register namespace attns is the Header Namespace configured on the Attachment Iterator.The _token() function is just a convenient way to extract the MIME type without any parameters.The _lcase() function is needed to convert to lowercase format because MIME types are case-insensitive.For example, the following expression returns text/calendar for this Content-Type

Content-Type: text/calendar; charset="utf-8"; method=REQUEST

The value of the Switch expression becomes the outgoing edge name.The Switch object is bound to the xCal and iCalendar service by an OnCustom edge called text/calendar.The OnDefault edge of the Switch object should also be bound to other services to handle attachments of other types.

The Operation parameter of the xCal and iCalendar service is set to iCalendar to xCal.The output is a parsed XML tree in the current document (indented for display purposes only):

<?xml version="1.0" encoding="ISO-8859-1" ?>
<icalendar xmlns="urn:ietf:params:xml:ns:icalendar-2.0">
  <vcalendar>
    <properties>
      <method>
        <text>REQUEST</text>
      </method>
      <prodid>
        <text>Microsoft Exchange Server 2007</text>
      </prodid>
      <version>
        <text>2.0</text>
      </version>
    </properties>
    <components>
      <vtimezone>
        <properties>
          <tzid>
            <text>Eastern Standard Time</text>
          </tzid>
        </properties>
        <components>
          <standard>
            <properties>
              <dtstart>
                <date-time>1601-01-01T02:00:00</date-time>
              </dtstart>
              <tzoffsetfrom>
                <utc-offset>-04:00</utc-offset>
              </tzoffsetfrom>
              <tzoffsetto>
                <utc-offset>-05:00</utc-offset>
              </tzoffsetto>
              <rrule>
                <recur>
                  <freq>YEARLY</freq>
                  <interval>1</interval>
                  <byday>1SU</byday>
                  <bymonth>11</bymonth>
                </recur>
              </rrule>
            </properties>
          </standard>
          <daylight>
            <properties>
              <dtstart>
                <date-time>1601-01-01T02:00:00</date-time>
              </dtstart>
              <tzoffsetfrom>
                <utc-offset>-05:00</utc-offset>
              </tzoffsetfrom>
              <tzoffsetto>
                <utc-offset>-04:00</utc-offset>
              </tzoffsetto>
              <rrule>
                <recur>
                  <freq>YEARLY</freq>
                  <interval>1</interval>
                  <byday>2SU</byday>
                  <bymonth>3</bymonth>
                </recur>
              </rrule>
            </properties>
          </daylight>
        </components>
      </vtimezone>
      <vevent>
        <properties>
          <organizer>
            <parameters>
              <cn>
                <text>Smith, Richard</text>
              </cn>
            </parameters>
            <cal-address>MAILTO:Richard_Smith@ibi.com</cal-address>
          </organizer>
          <attendee>
            <parameters>
              <role>
                <text>REQ-PARTICIPANT</text>
              </role>
              <partstat>
                <text>NEEDS-ACTION</text>
              </partstat>
              <rsvp>
                <boolean>true</boolean>
              </rsvp>
              <cn>
                <text>Doe, John</text>
              </cn>
            </parameters>
            <cal-address>MAILTO:John_Doe@ibi.com</cal-address>
          </attendee>
          <attendee>
            <parameters>
              <role>
                <text>REQ-PARTICIPANT</text>
              </role>
              <partstat>
                <text>NEEDS-ACTION</text>
              </partstat>
              <rsvp>
                <boolean>true</boolean>
              </rsvp>
              <cn>
                <text>Roe, Jane</text>
              </cn>
            </parameters>
            <cal-address>MAILTO:Jane_Roe@ibi.com</cal-address>
          </attendee>
          <description>
            <parameters>
              <language>
                <text>en-US</text>
              </language>
            </parameters>
            <text>When: Occurs every Tuesday from 10:00 AM to 11:00 AM effective 3/4/2014 until 4/1/2014. There are 5 more occurrences. (GMT-05:00) Eastern Time (US &amp; Canada)
Where: large conference room
*~*~*~*~*~*~*~*~*~*        </text>
          </description>
          <rrule>
            <recur>
              <freq>WEEKLY</freq>
              <count>5</count>
              <interval>1</interval>
              <byday>TU</byday>
              <wkst>SU</wkst>
            </recur>
          </rrule>
          <summary>
            <parameters>
              <language>
                <text>en-US</text>
              </language>
            </parameters>
            <text>group meeting</text>
          </summary>
          <dtstart>
            <parameters>
              <tzid>
                <text>Eastern Standard Time</text>
              </tzid>
            </parameters>
            <date-time>2014-03-04T10:00:00</date-time>
          </dtstart>
          <dtend>
            <parameters>
              <tzid>
                <text>Eastern Standard Time</text>
              </tzid>
            </parameters>
            <date-time>2014-03-04T11:00:00</date-time>
          </dtend>
          <uid>
            <text>040000008200E00074C5B7101A82E0080000000036D556D22B37CF0100000000
000000001000000020AF83025D205D48B6793B38A71FCBBB</text>
          </uid>
          <class>
            <text>PUBLIC</text>
          </class>
          <priority>
            <integer>5</integer>
          </priority>
          <dtstamp>
            <date-time>2014-03-03T21:59:16Z</date-time>
          </dtstamp>
          <transp>
            <text>OPAQUE</text>
          </transp>
          <status>
            <text>CONFIRMED</text>
          </status>
          <sequence>
            <integer>0</integer>
          </sequence>
          <location>
            <parameters>
              <language>
                <text>en-US</text>
              </language>
            </parameters>
            <text>large conference room</text>
          </location>
          <x-microsoft-cdo-appt-sequence>
            <unknown>0</unknown>
          </x-microsoft-cdo-appt-sequence>
          <x-microsoft-cdo-ownerapptid>
            <unknown>2112035382</unknown>
          </x-microsoft-cdo-ownerapptid>
          <x-microsoft-cdo-busystatus>
            <unknown>TENTATIVE</unknown>
          </x-microsoft-cdo-busystatus>
          <x-microsoft-cdo-intendedstatus>
            <unknown>BUSY</unknown>
          </x-microsoft-cdo-intendedstatus>
          <x-microsoft-cdo-alldayevent>
            <unknown>FALSE</unknown>
          </x-microsoft-cdo-alldayevent>
          <x-microsoft-cdo-importance>
            <unknown>1</unknown>
          </x-microsoft-cdo-importance>
          <x-microsoft-cdo-insttype>
            <unknown>1</unknown>
          </x-microsoft-cdo-insttype>
        </properties>
        <components>
          <valarm>
            <properties>
              <action>
                <text>DISPLAY</text>
              </action>
              <description>
                <text>REMINDER</text>
              </description>
              <trigger>
                <parameters>
                  <related>
                    <text>START</text>
                  </related>
                </parameters>
                <duration>-PT15M</duration>
              </trigger>
            </properties>
          </valarm>
        </components>
      </vevent>
    </components>
  </vcalendar>
</icalendar>

This document can be processed by more services (agents) according to the application requirements.

The various processing paths within the Attachment iterator loop must converge into a single Junction object. The loop edge points from the junction back to the iterator.



x
Example 2

This example explains how to read an iCalendar request from an email message stored in a file.

The email and HTTP listeners can automatically parse the multipart/alternative message because their underlying protocol requires the presence of headers. This step must also be added explicitly to the process flow of a File listener.

The File listener is configured to keep the document flat.

The first object of the process flow should be the S/MIME Unpacker service. This object can handle complex cryptographic messages, but also simple MIME messages like the multipart/alternative message in Example 1. The S/MIME KeyStore and S/MIME TrustStore providers are not used to parse simple MIME messages, but they must still be configured to satisfy the parameters that are required by the service. Any keystore provider is sufficient.

The Keep Message Flat parameter of the S/MIME Unpacker service must be set to false. This is required to parse the multipart message into the main body and its attachments. In the sample input message, the Content-Type of the main body is text/plain, therefore the service will not attempt to parse it as XML.

The remaining portions of the process flow can be configured as described in Example 1.


Top of page

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

Syntax:

com.ibi.agents.XDXMLDSigCreateAgent

iIT Service Object:

security: XML Output Signature Create

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

iIT Service Object:

security: XML Output Signature Verify

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

iIT Service Object:

misc: XQuery Agent

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. The following are examples:

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

Edges:

The following table lists the available line edges for the XQuery Expression Evaluation (com.ibi.agents.XDXQueryAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • 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_operation: Failed for another cause. 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.

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

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 …

Top of page

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

Syntax:

com.ibi.agents.XDZipOutAgent

iIT Service Object:

misc: Zip Out Agent

Description:

This service converts an input document into a compressed .zip file.

Parameters:

Parameter

Description

Entry name *

The name of the output .zip file that will be generated.

Comment

A comment associated with this entry.

Edges:

The following table lists the available line edges for the Zip Out Service (com.ibi.agents.XDZipOutAgent).

Line Edge

Description

OnError

Error

OnSuccess

Success

OnFailure

Failure

OnCustom

  • OnError
  • OnSuccess
  • OnFailure
  • fail_parse

Example:

The following image shows configuration settings specified in the Properties tab for a Zip Out service object in iIT Designer:

You can test the Zip Out service by configuring a channel with a basic File listener as the inlet and a route, which is associated with a process flow containing a Zip Out service object.

When you run this channel, the contents of the incoming message (picked up by the File listener) are added to a .zip file, which is placed in the destination folder specified by your File listener. The name of the entry that is added to 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