ISM 웹 콘솔 - 인터페이스 개발

The flow of an interface development

  • First make pieces of an interface. The pieces are field, field group, server, application, service, mapping, and etc.
  • Then assemble pieces into a bigger component like data structure, system, and service model.
  • Finally combine components into an interface.

This chapter explains each piece and component according to the flow.

Refer to tutorials(Realtime Message-DB tutorial) for handson guide.

Data

Input/output data structures of interfaces are managed here. Data structure has 3 types.

  • ISM type
    • consists of 1 or more field groups.
    • requires fields and field groups.
  • XML type
    • normal xml message
    • generated through sample xml data
  • ISO type
    • ISO 8583 message

Field

Field is the smallest unit of a ISM data structure. Field is like a column of a table, an attribute of a C struct.

Field has some properties to be used for transformation, validation, and formatting.

property Description Remarks
Name Field name
Description Field description
Type Field type
Length Field length
Filler Filler character when the length of a value is shorter than length
Format Field format. Used to convert character to date type.
Alignment Alignment of a field value. From left or right

Field group

Field group is an ordered set of one or more fields. Field group is basic unit of ISM data structure.

Common

Common tab defines general properties of a field group.

property Description Remarks
Fieldgroup name Field group name
Fieldgroup description Field group description
Delimeter Field group delimeter Usually used for delimiter based file data
upload excel file excel file name
Sheet name sheet name which contains field definition Only used when field group is defined in an excel file.
Set as Default header Check when this field group is used as commonly used header definition of a message Used only for ISM data structure
Mapping

Mapping is to assign fields into a field group, to specify usage for each field in a field group.

Properties of mapping table are followings.

Column name Description
index Field index in this field group. Index starts from 0.
Field id Field id from field definition
Field name Field name from field definition
Length Field length from field definition
Offset Offset from index 0 in this field group
Type Field type from field definition
Format Field format from field definition
Filler Filler from field definition
Align Field align from field definition
In/Out Field usage in this field group. Used for stored procedure.
Is Length field? Field usage in this field group. Used for flat message.
Value diff When this field is used as a length field, difference value to be minus. 8 means -8, -8 means add 8.
Key Key field in this field group. Used for table operation.
Null Nullable or not.
SQL Function SQL Function or not. Used for query generation
Validation Validation type
Key

Key is used for DB operation. One field group can have 0 or more key fields like a table. Key fields are used to generate condition parameters for

  1. select ... where param1 = key_field_N and param2 = key_field_M and ...
  2. update ... where key1 = key_field_N and key2 = key_field_M and ...
  3. delete ... where key1 = key_field_N and key2 = key_field_M and ...
SQL Function

SQL Function is used during transformation. ISM generates query for target operation during transformation in batch/deferred interface. When ISM generates queries, it checks whether a field is used as a sql function. If the field is defined as a sql function, the result of transformation of that field is added to the generated query as a constant.

For example,

  • Col3 is normal field not used as sql function.
  • Mapping to that field assigns SYSDATE as default value.
  • Transformation result of that field is SYSDATE.

ISM will generate this query.

insert into target_table(col1, col2, col3) values(?, ?, ?);

if query is literal type, generated query will look like this.

insert into target_table(col1, col2, col3) values('col1_value', 'col2_value', 'SYSDATE');
  • Col3 is used as sql function.
  • Mapping to that field assigns SYSDATE as default value.
  • Transformation result of that field is SYSDATE.

ISM will generate this query.

insert into target_table(col1, col2, col3) values(?, ?, SYSDATE);

if query is literal type, generated query will look like this.

insert into target_table(col1, col2, col3) values('col1_value', 'col2_value', SYSDATE);
Null

If input value of Nullable field is null, ISM will do

  • For realtime flat message
    • fill filler character to the field
  • For database operation
    • set null parameter
  • For file operation with fixed length
    • fill filler character to the field
  • For file operation with delimiter
    • set empty value
Add a field

Go to mapping tab.

Click add field button(), a new row is appended at the end of the field list.

Click empty cell and popup field list dialog.

Select a field, and selected field is set to the new row.

To insert a field into a specific index, set index value and click add field button().

To delete a field, select a field and click delete button(Table row delete.png)

Excel upload

For the layout of excel file, refer to this file field group sample. This file is included under ISM_INSTALL_DIR/data.

Data structure

ISM

ISM data structure defines

  • layout of data
    • ISM data structure consists of at least 1 master field group.
    • 1 master field group can have 0 or more detail field groups.
    • Refer to File-DB Batch tutorial for how to generate ISM data structure.
  • record delimiter
    • Used for file based data
  • repeated group and repeat count
    • Only detail group can be repeated.
    • Repeat count is not fixed, repeat count must be assigned somewhere in the data structure before that detail group.
    • Refer to Message-DB Realtime tutorial for how to define repeat group and repeat count
XML

XML data is generated from sample xml.

ISM does not provide data structure generation from xml schema or DTD.

Refer to Message-DB Realtime tutorial for how to generate XML data structure.

ISO

System

System is a combination of application and server. One system can have one or more combinations of them. Usual production systems run same services on multiple servers.

Application

Application defines type of software or package.

Common

Common tab defines application type and account information(userid/password).

property Description Remarks
Application type Type of this application
Application name Name of this application
Application description Description of this application
Port no Listening port of this application
User id User id of this application File, DB application requires user id
User password Password FIle, DB application requires user password
File application

ISM connects FTP or SSH daemon to get or put file(s).

  • FTP
  • sFTP
  • FTPs
  • SCP
  • Tandem FTP
  • SFTP(Windows)
    • This type is to simulate FTP ascii type transfer in sFTP.
  • Custom
    • When
DB application

ISM connects database servers via JDBC protocol. When DB application is used as a target and XA transaction is required, ISM uses platform provided adapter or datasource to communicate.

  • Oracle
  • MSSQL
  • Mysql
  • DB2
  • DB2AS400
  • Informix
  • Sybase
  • Teradata
Web application

Defines Web server. ISM just calls http(s) url regardless the type of http application - php, asp, jsp, etc.

EJB application

ISM communicates with J2EE servers via two protocols. One is JMS and the other is EJB. ISM uses Web application type to communicate other than JMS and EJB.

JMS type

  • ActiveMQ
  • SonicMQ
  • MQ

EJB type

  • Websphere
  • WebLogic
  • JBoss-as-5
  • JBoss-as-7
Message application

Message application is used to communicate with applications in which flat messages are used. Flat message usually have fixed length data.

These classification don't have different implementation. They just indicate what applications are running.

  • Socket
  • TP Monitor
Etc

Etc type has no specific properties. It indicates that application is not in the application list.

Server

Server defines physical host address or hostname.

System

System combines one application with one or more servers. ISM invokes service running on one of the servers against load balancing rule or constructs connection information like FTP or database.

Common

Common tab defines general policies for that system. Load balancing and status management are defined.

property Description Remarks
System name System name
System description description
Loadbalancing type How to balance requests to servers in that system Refer to Load balancing policy
Use health check Determine health check is required or not If check, when an error occurs, ISM tries to determine whether that error means system failure or not. Otherwise, ISM ignores system failure. Refer to Detect and recover of system failure.
Auto recovery Determine change server status automatically Used with Use health check property.
GID Check Allow same transaction or not GID is a identifying key of each transaction
Call limit Determine how many requests can go to that system. This property is ambiguous. Don't set other value than 0.
Auto recovery

Both Health check and auto recovery are on, then ISM tries to send dummy message for health check to that down server. The dummy message for health check is provided by user program. In ISM realtime ISM requires realtime parser. Realtime parser is used to extract information from input message and set value to outbound message. Another things parser should provide are ACK message and health check messages.

ACK message does not mean network level protocol but business level protocol. ACK is required, ISM ask parser to generate ACK message based on input message. ISM returns that ACK message to sender/source system.

Refer to Realtime parser for how to generate those messages.

Server Mapping

Here ISM combines application and server and assign special properties to that combination related with load balancing policy.

Click Add button() to add a new combination.

Click Application id or Application name cell to choose an application.

Click Server id or Server name cell to choose a server.

All the other properties of this combination are about load balancing policy.

Is master

This property is used when load balancing type is either

  • failover
  • dedicated

failover

  • All the requests goes to the master server except only when master server is down.
  • When master server is down, ISM tries to determine which is the backup server of this server.
  • If all the servers are set as master, first server in the list is the master server.

dedicated

  • All the requests goes to the master server even if when master server is down.
weight for load balancing

This property is used when load balancing type is

  • Round robin

Default weight among the servers are same. Other value than 0 is assigned to a server, ISM sums up all the values and calculates weight per server.

Server status

Refer to Server status for values for available server status.

Default status value is No run.

  • No run
    • means status is not checked.

To enable server status check, set status value to Run.

Healthcheck interval

This value is used only when that server is down.

Interval means with which interval seconds ISM will try to check the status of that server.

Backup application index

This property indicates next server to invoke when this server is down. If the index is not assigned, i.e. -1, then ISM look for next master server from the list.

Proxy system

Proxy system is used in Businessware version.

System id of the proxy system is meaningful. Proxy system means what common process will be used to communicate to real target system for what type of interface. Refer to Types of proxy system for usage of proxy system

Common system

Common system is used for Businessware version only.

Common system stands for a process which is in charge of communication to multiple systems. Common system id is the only meaningful property.

Interface

Service

Service is used to define what to do for source/target respectively.

For example, in a DB-DB batch interface, a service for source interface gets data from source system. Service definition for source interface contains query for getting data from source table. Service definition for target interface contains operation - CUD - and table name.

Common

Common tab defines general policies for that system. Load balancing and status management are defined.

property Description Remarks
Service name Service name
Service description description
Input data structure data structure used as input
Output data structure data structure used as output
Error data structure data structure used as error response
Service type service type
Blocked Service is blocked? Used for realtime services to prevent bad service from affecting target system.
DB Service

DB Service tab defines table related operations.

property Description Remarks
CRUD DB operation
Table name Table name
Stored procedure? is target stored procedure? Not used yet
Query type JDBC query tyle
  • prepared - prepared statement like
    • select * from table_name where condition1 = ? and condition2 = ?
  • literal - literal statement like
    • select * from table_name where condition1 = 'value1' and condition2 = 'value2'
Date management class date management class
Table name manager class Table name manager class Used when table name contains #TABLE_NAME# parameter
Query handler class Custom query generation class Used when query generated by ISM cannot satisfy user requirements. Used for all the operation types.
Filter type ---
Filter handler Used when Filter type is handler.
Fetch count ---
Query Used when CRUD value is one of select, user sql or user sql(skip error).
CRUD
  • select
  • insert
  • update
  • delete
  • Insert if update failed
    • insert if update count is 0
    • When the record does not exist, insert that record.
  • update if insert failed.
    • update if insert raises duplication error.
    • When the record already exists, update that record.
  • insert(skip duplicate)
    • Even if duplication error occurs, just ignore.
  • update(skip count 0)
    • Even if no record is updated, just ignore.
  • delete(skip count 0)
    • Even if no record is deleted, just ignore.
  • dynamic
    • ---
  • dynamic(skip error)
    • ---
  • user sql
    • ---
  • user sql(skip error)
    • ---
Filter type
  • Value
    • ---
  • Pattern
    • ---
  • Handler
    • ---
Stored procedure type

This type is used only in realtime service for now.

ISM assumes query entered in the Query area as stored procedure call statement when Stored procedure property is checked. Query for stored procedure looks like this.

{call GetInterfaceWithOutput(#parameter_name#, ?, ?, ?, ?, ?)}
  • #iparameter_name#
    • Enclose parameter with #.
    • parameter_name must match a field name of input data structure.
  • ?
    • ? means input or output parameter.

ISM replace #parameter_name# with ? if query type is prepared. It means that prepared type query is used, ? can be used for input parameters.

Data structure of stored procedure
  • stored procedure has no input/output parameters and returns result as a result set.

Contents of stored procedure(mysql)

DELIMITER //
DROP PROCEDURE IF EXISTS GetAllInterfaces;
CREATE PROCEDURE GetAllInterfaces()
    BEGIN
    SELECT 'GetAll', INTEGRATIONSERVICEID, ISTWOPHASECOMMIT, INTEGRATIONSERVICENAME, INTEGRATIONSERVICEDESC FROM integrationservice;
    END //
DELIMITER ;

ISM query

{call GetAllInterfaces()}

Input data structure is not required.

Output data structure

IN or OUT type value is not checked. Output data structure must contain one master field group with RESULT_COUNT field only.

  • Result set data are mapped as detail field group.
  • stored procedure has only input parameters and returns result as a result set.

RESULT_COUNT is fixed field name which indicates how many records exist in the return.

Contents of stored procedure(mysql)

DELIMITER //
DROP PROCEDURE IF EXISTS GetFilteredInterfaces;
CREATE PROCEDURE GetFilteredInterfaces(IN id varchar(255))
    BEGIN
    SELECT 'GetFiltered', INTEGRATIONSERVICEID, ISTWOPHASECOMMIT, INTEGRATIONSERVICENAME, INTEGRATIONSERVICEDESC FROM integrationservice where integrationserviceid like concat ('%', id, '%');
    END //
DELIMITER ;

ISM query

{call GetFilteredInterfaces(?)} or {call GetFilteredInterfaces(#id_filter#)}

Input data structure is used to for input parameter mapping.

Output data structure is same with the above case.

  • stored procedure has both input/output parameters and returns result via output parameters.

Contents of stored procedure(mysql)

DELIMITER //
DROP PROCEDURE IF EXISTS GetInterfaceWithOutput;
CREATE PROCEDURE GetInterfaceWithOutput(IN id_filter varchar(255),
        OUT out_header varchar(255),
        OUT out_id varchar(255),
        OUT out_2pc varchar(1),
        OUT out_name varchar(255),
        OUT out_desc varchar(255)
        )
    BEGIN
    SELECT 'GetWithOutput', INTEGRATIONSERVICEID, ISTWOPHASECOMMIT, INTEGRATIONSERVICENAME, INTEGRATIONSERVICEDESC
    INTO out_header, out_id, out_2pc, out_name, out_desc
    FROM integrationservice where integrationserviceid like concat ('%', id_filter, '%');
    END //
DELIMITER ;

ISM query

{call GetInterfaceWithOutput(#id_filter#, ?, ?, ?, ?, ?)} or {call GetInterfaceWithOutput(?, ?, ?, ?, ?, ?)}

Input data structure

Input data structure must contain both input and output parameters to register output parameters while invoking stored procedure.

Output data structure

Input and output data structure must have same field group.

File Service
property Description Remarks
File path directory for file(s)
File name file name If file name is not specified here, ISM looks for a file name from input parameter
File authority(mask) file mode File mode - rwx, set as number
Transfer attributes Duplicated file control

Specifies what to do when a file with same name already exists,

  • raise exception
  • overwrite
    • Overwrite current existing file.
  • append
    • Append to current existing file.
  • restart
    • When an FTP transfer was interrupted, restart FTP transfer from the interrupted position.
    • FTP server must support restart feature.
Use original file name to put Use source file name Used when this service is a target service. Use source file name, even if target file name is specified as a service property or input parameter.
Use temp file name Use temporary file name to put file Used when this service is a target service. ISM puts file data with temporary file name. After file transfer finished, ISM renames that temporary file to expected target file name.
Sent file attribute Operation for source file after transfer
  • Move
  • Delete
Result file path Transfer result file path Used to indicate file transfer is completed
Result file name Transfer result file name Used to indicate file transfer is completed
File name manager class File name converter class Used when file name contains parameters. Parameter is enclosed by #, for example #parameter_name#.

Refer to Custom handlers for implementation details.

Fetch count --- ---
Data structure in realtime service

When a file service is used in realtime interface, it has return data with only one field named FILE_NAME.

FILE_NAME is fixed field name in ISM. The length can be modified.

JMS Service
property Description Remarks
message type JMS message type
  • Text
  • Object
  • Map
  • ByteArray
Queue name queue or topic name
Connection Factory JMS connection factory ---
Transfer type Queue or topic
Web Service
property Description Remarks
WSDL URL WSDL url
WSDL Version WSDL specification version
  • 1.1
  • 2.0
    • Not supported
Operation name Operation to invoke

Operation is defined as root element of Input xml data structure. Response of an operation is also defined as root element of output xml data structure.

Target Name Space Web service name space
Service name Web service name
Endpoint URL for the web service Endpoint does not include host:port
EJB Service
property Description Remarks
JNDI Name JNDI name of EJB
  • WebLogic
  • JBoss
  • Websphere
EJB Version EJB version
  • 2
    • Requires client stub to invoke. Not supported
  • 3
    • Dynamic invocation

Service mapping

Service mapping means every mapping involves output(s) of previous step(s) and input of next step. Each step stands for a service. One step may involve several output data to make its own input data.

Service mapping consists of one or more input services and one output service. Refer to File-DB Batch tutorial for the steps to define a mapping.

Data structures used for mapping are followings.

  • Input service(s)
    • Output data structure
    • Error data structure
  • Output service
    • Input data structure
  • Connect by name
    • For file or table, ISM connects wires input field to output field with same name.
  • Add default value
    • For a output field, default value can be assigned. When a default value is assigned, regardless the mapping wires, the default value is set to output value.
  • Add conversion function
    • For a output field, conversion function can be assigned for arithmetic calculation, concatenation, trim, and etc.

Function template

Function template manages user defined custom conversion functions.

User can create his/her own function in web console.

property Description Remarks
Function name Function name Function name is used as java class name. Naming convention follows java class naming convention. Special characters are not allowed.
Parameter count parameter count This property is used to generate function definition while mapping definition.
Function description description of function
Function code Implementation code Write user code here.
If user code requires 3rd party libraries other than jdk like JDBC, write code in external IDE, and put compiled class to $ISM_HOME/custom directory.

Below is the bundled functions list.

Function name Description Parameter count Example
CodeConverter Code mapper. Used for simple code mapping. Ex) input value 'A' to 1, 'B' to 2
  • 1st : is code mapping id
  • 2nd : is input field
CodeConverter(CM00001, $1);
ltrim Left trim. Remove left side space or newline of input value.
  • 1st : is input field.
ltrim($1);
rtrim Right trim. Remove right side space or newline of input value.
  • 1st : is input field.
rtrim($1);
nvl Return a certain value when input is null.
  • 1st : Is input field.
nvl($1, a_value);
nvl2 Return a certain value according to input for both null and not-null case.
  • 1st : is is input field to be checked for a null value.
  • 2nd : is return value when 1st parameter is not null.
  • 3rd : is return value when 1st parameter is null.
nvl2($1, null_value, notnull_value);
tolower Convert input string value to lower case
  • 1st : is input field
tolower($1);
toupper Convert input string value to upper case
  • 1st : is input field.
toupper($1);
Code conversion

Code mapping is used to convert meta code like values from one type to another type. It does not involve any calculation but map input value to output value.

Common

Common tab defines general explanation of code mapping definition.

property Description Remarks
Code conversion id code conversion id Id is automatically generated.
Code converson name code conversion name
Code conversion description description
Mapping

Mapping tab defines input/output value list.

property Description Remarks
input data input value
output data output value
Field id field id converted with this conversion Field id is not used in conversion. It's just for information.
Field name Field name from field id Field name is also assigned for information.

Service model

Service model defines flow of an interface. Physical system is not included in service model. User defines flow with previously defined service and mapping information. Refer to Realtime Message-DB tutorial.

Common

Common tab defines basic information about a service model.

property Description Remarks
Service model name Name of service model
Service model desc Description of service model
Concurrent processing Parallel processing
Used only in realtime and deferred services
Flow design

Flow design designs service flow from source to target(s) and how to.

Source
  • Service
    • Click search button() to set service
  • pattern
    • pattern indicates how to communicate with source system.
    • Sync request
      • Source will wait response in a synchronous way.
    • Async request
      • Source will wait response in an asynchronous way.
    • Async transfer
      • Source will not wait response.
    • ACK request
      • Source will wait response in an asynchronous way but ACK is required.
    • ACK transfer
      • Source will not wait response but ACK is required.

red button() means send/request. blue button() means response.

Routing

Routing has two types. One is used to send/request to target system. The other is used to respond to source or send/request to another target.

Send/Request
  • Upper box is used to routing method and add or remove routing targets.
    • Green button() adds sequential routing target.
    • Orange button() adds concurrent routing target.
    • remove button() removes last routing target.
  • Lower box is used to specify mapping and routing target.
    • Click search button() to choose mapping.
    • Click clear button() to unset mapping.
    • Click red button( and blue button() to wire routing target.
    • Checkbox is default routing target. When no matching condition is found, ISM sends to this routing target.
    • Left text field is routing value.
    • Right text field is mapping id.
    • Routing method is not All, ISM looks for matching routing target based on the value set in the routing value field.
Response
  • Upper box is used to routing method, error mapping and add or remove routing targets.
    • If error response returns from target system, ISM returns error response without further checking.
    • If error mapping is defined, ISM transforms error response with error mapping and returns.
  • Lower box is used to specify mapping and routing target.
    • The layout of lower box is same with Send/Request routing box.
Routing method

Routing method has four types.

  • All
    • Send to all the routing targets.
  • Value
    • Send to the routing target which contains exactly same value with routing input.
  • Function
    • Send to the routing target which contains exactly same value with the result of function execution.
    • Function is user defined java class. Refer to Routing function about how to implement.
    • Function returns true when routing input matches condition, otherwise returns false.
  • Pattern
    • Send to the routing target of which routing input matches the pattern.
    • Pattern means regular expression.

To determine routing target, routing input field(s) are selected. Routing input(s) are selected from output messages of previous steps. Output messages are same with service mapping.

Target
  • Service
    • Click search button() to set service

Pattern property is same with source.

  • pattern
    • Sync request
      • Target will respond in a synchronous way.
    • Async request
      • Target will respond in an asynchronous way.
    • Async transfer
      • Target will not send response.
    • ACK request
      • Target will send response in an asynchronous way and ACK will be returned.
    • ACK transfer
      • Target will not send response but ACK will be returned.
  • blue button() means send/Request.
  • red button() means response.

Click routing button() to add routing.

Task

Task is used to do pre or post processing before or after main processing in batch and deferred services. Each task consists a group of jobs.

One interface can have only one pre task and one post task at best.

Common

Common tab defines basic information about a task.

property Description Remarks
Task id Task id Id is generated automatically
Task name Name of task
Task description Description of task
Task

Task tab defines a set of jobs. Each job is executed sequentially according to the index from 0. If a job fails, ISM stops processing.

Job definition
property Description Remarks
Task name Name of job
Task type Type of task
File name Name of file Used in File task.
Handler class Name of handler class Used in Service and Custom task
Sync? is sync? Used in Service task. If async is selected, ISM does not wait response from job.
System id System id to execute this job System id is used to get connection information
Data Data used as input for job
  • Table task
    • Sql query or queries
    • Each query is separated with ;
  • File task
    • File contents
  • Stored procedure
    • Sql query to execute stored procedure
  • Telnet
    • Telnet connection information and shell script name
  • Custom
    • Custom task handler
    • Input data for custom task
  • Service
    • Input data for service task
    • Service task can process only ISM type data
Table task

Table task does not support select query. Even if you enter select query, ISM does not get query result. ISM just check whether the query is successful or not.

Telnet task
attribute description usage example
host name Telnet host list, separated with comma(,) #$telnet.host ex) #$telnet.host=localhost
port Telnet port, default port is 23. #$telnet.port ex)#$telnet.port=23
user telnet user id. multiple users are separated with comma(,) #$telnet.user ex)#$telnet.user=user1
password password

Encrypted password must be assigned. When multiple users are assigned, separate with comma(,).
#$telnet.password ex)#$telnet.password=IUbOQ0vlgMKPF77kYaNmkw==
prompt Telnet prompt

After login, telnet server returns prompt. After prompt, user can execute command. The prompt format is different per server, so prompt format should be defined. When multiple servers should be defined like master and backup, each server is separated with comma(,).
#$telnet.prompt ex)#$telnet.prompt=/home/ism>
timeout script execution timeout

deafult is 60 seconds
#$telnet.timeout ex)#$telnet.timeout=120
login prompt After connection, telnet server returns login prompt. Login prompt is used to inform user to enter user id. The format of login prompt is usually ends with ogin:.

No login prompt is assigned, default value used is ogin:.
#$telnet.login.prompt #$telnet.login.prompt=ogin:
password prompt After user entered user id, telnet server returns password prompt. Password prompt is used to inform user to enter password. The format of login prompt is usually ends with assword:.

No password prompt is assigned, default value used is password:.
#telnet.password.prompt #telnet.password.prompt=assword:

(*) To encrypt password, use encrypt.sh(bat) command. $>encrypt.sh raw_string_to_be_encrypted

ex) /sw../../bin/util>encrypt.sh solulink IUbOQ0vlgMKPF77kYaNmkw==

Stored procedure task

ISM does not use output parameters after execution. ISM just checks whether execution is successful or not.

Stored procedure call query looks like this.

{call sp_name('string_param_value', number_param_value)}

Don't forget {} at both ends of the query.

Service task

Service task is used to invoke application or service on target system. This task generates message to be used to invoke ISM realtime interface and send to realtime module. That realtime interface forwards incoming message to target system and returns result to service task. Message handler class is used to generate message for ISM realtime interface. If no message handler class is defined, the value on data property is sent as it is.

Function
  • Usage

To indicate function, enclose function invocation with <!, !>. If parameter(s) exist(s) inside function invocation, ISM converts parameters then invokes function. After function is executed, ISM pass the result to handler class.

  • sample
<!F(#TGT_FILE_NAME#,20,1," ")!>
F Name of conversion function. java class name.
#TGT_FILE_NAME# parameter name. User defined parameters can be assigned as pre or post parameters of batch agent.
  • Function class

Refer to Service task function about how to implement a function.

Handler class

Handler class is used for service task and custom task. Handler does

  • generates message to be sent to target system
  • or execute some business logic
  • and determine whether the result is success or failure

Refer to Task handler about how it is used and implemented.

Interface

Interface is final assembly of previously defined items.

  • Interface type
  • properties for selected type
  • system

are assigned here.

After generating interface, publish to master, validate() whether it can be sent to runtime.

Common properties
property Description Remarks
integration service id Interface id Key to identify an interface
integration service name Name of interface
integration service description Description of interface
Is 2PC Flag to process as XA transaction or not
Validate message? flag to message validation If validation is yes,
  1. validates each field against the definition of each field. Length, type, and format for date type are validated.
  2. field validation rule is defined in field group, check field value against validation rule.
Service model Service model id When creating a new interface, service model is selected first.
Business code Business code of this interface Not used
interface type Interface type
  • Realtime
  • Batch
  • Deferred
Realtime service
Properties
property Description Remarks
Log processed? flag to log transaction result Transaction results are stored in database
Message log flag to log message Messages are stored in file system
Async Retry Count retry count How many times to try to send a message to target systems when failed for asynchronous transfer?
Async Retry Timeout retry time(seconds) How long the failed message must not be maintained before purge for asynchronous transfer?
  • Async Retry policy follows either max value.

Example)

  • retry count = 10
  • retry timeout = 30 seconds

if retry timeout reaches after 4th retry, then ISM purges the message from the queue. If retry count reaches max before timeout reaches, then ISM purges the message from the queue.

Default retry policy is unlimited retry until success.

System properties
property Description Remarks
timeout communication and service execution timeout included.
Batch service
Properties
property Description Remarks
Pre task Jobs to be executed before main process
Post task Jobs to be executed after main process
Fetch count Processing uint. Record count in one processing

If whole record count to be processed is greater than fetch count, ISM splits records per fetch count and process. Default fetch count is 10000, when 0 or nothing is assigned.

Transfer method Transfer method
  • Direct(EAI)
    • Used only both source and target service are file.
    • Direct transfer via ISM with no transformation
  • Direct(Agent)
    • Used only both source and target service are file.
    • Direct transfer via Agent with no transformation
    • Agent connects to target system and transfer file(s).
Rollback type rollback type when a processing unit failed
  • All
    • Previous units are already committed, only current unit can be rollbacked.
  • Failed data
    • Ignore failed records, just commit.
Timeout wait timeout of batch manager

Data collection is performed in background.

  • Collection flow
    • Batch job manager orders source system interface module to collect data.
    • Source system interface module starts background collection thread.
    • Source system interface module returns temporary file names to be used.
    • Background collection thread saves collected data into temporary files.
    • Batch job manager waits for first temporary record file until Timeout.
    • Batch job manager orders target system interface module to process the records stored in the temporary file.
    • Target system interface module reads temporary file and processes records in that file.
    • Batch job manager repeat wait and order steps until all the files are processed, if no error occurs.

Default Timeout is 60 seconds, , when 0 or nothing is assigned.

File transfer type file mode
  • ASCII
  • Binary
File separation handler class File split class Custom class when default split class does not fit the file structure.

Default file separation classses are

  • FixedLength
  • FixedLengthWithRecordDelimeter
  • FieldDelimeter
  • FieldDelimeterWithRecordDelimeter
System properties
property Description Remarks
timeout not used
Deferred service
Properties
property Description Remarks
Rollback type rollback type when a processing unit failed
  • All
    • Previous units are already committed, only current unit can be rollbacked.
  • Failed data
    • Ignore failed records, just commit.
Fetch count Processing uint. Record count in one processing

If whole record count to be processed is greater than fetch count, ISM splits records per fetch count and process. Default fetch count is 10000, when 0 or nothing is assigned.

Retrieve interval Timer interval(seconds)

Default interval is 30 seconds, when 0 or nothing is assigned.

Day-close field name Flag column to be used as an indicator of sequence initialization

Used only when sequence initialization type is Change by day-close value

Day-close field value Value of flag column to be used as an indicator of sequence initialization

Used only when sequence initialization type is Change by day-close value

Excluded value Not used
Last value getter class When next sequence to fetch is not managed in the source table or in different way.

For example, sequence value is managed in a different table.

Sequence automatic generation generation interval(seconds)

When sequence value does not exist in source table and no other way to identify records to be processed, ISM recommends additional empty two columns which can be used as sequence and date field. ISM sequence generator fills up those two columns with sequence and current date and ISM will process based on the sequence.

Max sequence no max sequence number

If you want endless growth of sequence, set empty.

Sequence initialization condition Sequence initialization type
  • Not used
  • Change by system date
  • Others(Change by business rule)
  • Change by max sequence no
  • Change by day-close value
Send last value Flag to send day-close value to target or not
Sequence field Sequence field to be used for automatic sequence generation
Date field Date field to be used for automatic sequence generation
System properties
property Description Remarks
timeout Not used