ページの先頭行へ戻る
Interstage Service Integrator V9.5.0 アプリケーション開発ガイド
FUJITSU Software

C.1.3 ファイル転送の定義

FTPを利用したファイル転送を行う場合、サービスエンドポイント定義に、ファイル転送で必要な情報を定義します。
ファイル転送の定義には、以下の種類があります。

C.1.3.1 受信

インバウンドサービスエンドポイント定義の指定例は、以下のとおりです。

指定例

サービスエンドポイント定義

サービスエンドポイント定義:endpoint.xml
<?xml version="1.0" encoding="UTF-8" ?>
<EndpointList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esi-endpoint.xsd">
    <Endpoint name="endpoint01" sync="false">
        <SequenceName>gyoumu01</SequenceName>
        <ServiceName>service001</ServiceName>
        <QueueName>ESIInboundQueue</QueueName>
    </Endpoint>
    <Endpoint name="endpoint02" sync="false">
        <SequenceName>gyoumu02</SequenceName>
        <ServiceName>service002</ServiceName>
        <QueueName>ESIInboundQueue</QueueName>
    </Endpoint>
    <Endpoint name="endpoint03" sync="false">
        <SequenceName>gyoumu03</SequenceName>
        <ServiceName>service003</ServiceName>
        <QueueName>ESIInboundQueue</QueueName>
    </Endpoint>
</EndpointList>
表C.9 定義項目

キー名

説明

指定例

1

Endpoint

name

サービスエンドポイント名を指定します。

endpoint01

sync

サービスエンドポイントの同期タイプ“false”(非同期通信)を指定します。

false

SequenceName

シーケンス名を指定します。シーケンス定義に指定したシーケンス名を指定してください。

gyoumu01

ServiceName

サービス名を指定します。サービス情報に指定したサービス名を指定してください。

service001

QueueName

JMSキュー名を指定します。

ESIInboundQueue

2

Endpoint

name

サービスエンドポイント名を指定します。

endpoint02

sync

サービスエンドポイントの同期タイプ“false”(非同期通信)を指定します。

false

SequenceName

シーケンス名を指定します。シーケンス定義に指定したシーケンス名を指定してください。

gyoumu02

ServiceName

サービス名を指定します。サービス情報に指定したサービス名を指定してください。

service002

QueueName

JMSキュー名を指定します。

ESIInboundQueue

3

Endpoint

name

サービスエンドポイント名を指定します。

endpoint03

sync

サービスエンドポイントの同期タイプ“false”(非同期通信)を指定します。

false

SequenceName

シーケンス名を指定します。シーケンス定義に指定したシーケンス名を指定してください。

gyoumu03

ServiceName

サービス名を指定します。サービス情報に指定したサービス名を指定してください。

service003

QueueName

JMSキュー名を指定します。

ESIInboundQueue

サービス情報

サービス情報:service001.xml(改行コードを指定して分割する場合)
<?xml version="1.0" encoding="UTF-8" ?>
<Service name="service001" type="filewatch" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esi-service.xsd">
    <PropertyList>
        <Property name="filename">/FTPhome/recvdata.dat</Property>
        <Property name="watch">true</Property>
        <Property name="split">CR</Property>
        <Property name="split_CR">0x0D0A</Property>
        <Property name="jmsr.messageAccumulate">true</Property>
    </PropertyList>
</Service>
表C.10 定義項目

キー名

説明

指定例

Service

name

サービス名を指定します。

service001

type

“filewatch”(ファイルの受信を監視し、シーケンスを開始)を指定します。

filewatch

Property

filename

監視対象のファイル名を指定します。ファイル名は、絶対パスで指定してください。

/FTPhome/recvdata.dat

watch

ファイルを監視するかどうかを指定します。

  • true:ファイルを監視する(デフォルト)

  • false:ファイルを監視しない

true

split

ファイル分割の種類を指定します。

  • no:ファイルを分割しない(デフォルト)

  • Size:ファイルサイズで分割
    “Size”を指定した場合は、“split_size”で、分割するファイルサイズを指定してください。

  • CR:監視ファイルのデータを改行コードで分割
    “CR”を指定した場合は、“split_CR”で、改行コードを指定してください。

CR

split_CR

“split”に“CR”を指定した場合、監視ファイルのデータの改行コードを指定します。

  • 0x0D0A:監視ファイルのデータの改行コードがCRLFの場合

  • 0x0A:監視ファイルのデータの改行コードがCRの場合

  • 0x0D:監視ファイルのデータの改行コードがLFの場合

0x0D0A

jmsr.messageAccumulate

JMS-Rキューを使用する場合、メッセージを蓄積するかどうかを指定します。

  • true:蓄積する(デフォルト)

  • false:蓄積しない

true

サービス情報:service002.xml(サイズを指定して分割する場合)
<?xml version="1.0" encoding="UTF-8" ?>
<Service name="service002" type="filewatch" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esi-service.xsd">
    <PropertyList>
        <Property name="filename">/FTPhome/recvdata2.dat</Property>
        <Property name="watch">true</Property>
        <Property name="split">Size</Property>
        <Property name="split_size">1024</Property>
        <Property name="jmsr.messageAccumulate">true</Property>
    </PropertyList>
</Service>
表C.11 定義項目

キー名

説明

指定例

Service

name

サービス名を指定します。

service002

type

“filewatch”(ファイルの受信を監視し、シーケンスを開始)を指定します。

filewatch

Property

filename

監視対象のファイル名を指定します。ファイル名は、絶対パスで指定してください。

/FTPhome/recvdata2.dat

watch

ファイルを監視するかどうかを指定します。

  • true:ファイルを監視する(デフォルト)

  • false:ファイルを監視しない

true

split

ファイル分割の種類を指定します。

  • no:ファイルを分割しない(デフォルト)

  • Size:ファイルサイズで分割
    “Size”を指定した場合は、“split_size”で、分割するファイルサイズを指定してください。

  • CR:監視ファイルのデータを改行コードで分割
    “CR”を指定した場合は、“split_CR”で、改行コードを指定してください。

Size

split_size

“split”に“Size”を指定した場合、分割するファイルサイズを指定します。

1024

jmsr.messageAccumulate

JMS-Rキューを使用する場合、メッセージを蓄積するかどうかを指定します。

  • true:蓄積する(デフォルト)

  • false:蓄積しない

true

サービス情報:service003.xml(ファイルを監視する場合)
<?xml version="1.0" encoding="UTF-8" ?>
<Service name="service003" type="filewatch" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esi-service.xsd">
    <PropertyList>
        <Property name="watchtype">ackfile</Property>
        <Property name="filename">/FTPhome/*.dat</Property>
        <Property name="ackfilename">/FTPhome/$[FILENAME].ack</Property>
    </PropertyList>
</Service>
表C.12 定義項目

キー名

説明

指定例

Service

name

サービス名を指定します。

service003

type

“filewatch”(ファイルの受信を監視し、シーケンスを開始)を指定します。

filewatch

Property

watchtype

ファイルの監視方法を指定します。以下のどちらかを指定します。

  • time
    時間で監視します。

  • ackfile
    指定したファイルが到着するまで監視します。

ackfile

filename

監視対象のファイル名を指定します。ファイル名は、絶対パスで指定してください。
ファイル名には、ワイルドカードを指定できます。

/FTPhome/*.dat

ackfilename

監視する完了ファイルのファイルパス(絶対パス)を指定します。ファイルパス内の監視完了ファイル名には、埋込み文字列“$[FILENAME]”を必ず指定してください。埋込み文字列“$[FILENAME]”は、[filename]で指定したファイル名に置き換えられます。

/FTPhome/$[FILENAME].ack
“/FTPhome/*.dat.ack”になります。

ポイント

  • シーケンス定義やメディエータファンクション定義を変更する場合、ほかの監視部分は動作させたまま、一部分だけを監視対象からはずしたいときは、Property項目の“watch”に“false”を指定してください。“false”を指定した定義は、監視対象外となり動作しません。

  • 監視対象のファイルを指定する“filename”は、複数のサービスエンドポイントで同じファイルを指定しないでください。複数のサービスエンドポイントから同じ監視対象のファイルを共有した場合は、どのサービスエンドポイントから実行されるか保証されません。

C.1.3.2 送信

アウトバウンドサービスエンドポイント定義の指定例は、以下のとおりです。

指定例

サービスエンドポイント定義

サービスエンドポイント定義:endpoint.xml
<?xml version="1.0" encoding="UTF-8" ?>
<EndpointList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esi-endpoint.xsd">
    <Endpoint name="endpoint02" sync="false">
        <ServiceName>service002</ServiceName>
        <QueueName>ESIFTPQueue</QueueName>
    </Endpoint>
</EndpointList>
表C.13 定義項目

キー名

説明

指定例

Endpoint

name

サービスエンドポイント名を指定します。

endpoint02

sync

サービスエンドポイントの同期タイプ“false”(非同期通信)を指定します。

false

ServiceName

サービス名を指定します。サービス情報に指定したサービス名を指定してください。

service002

QueueName

JMSキュー名を指定します。

ESIFTPQueue

サービス情報

サービス情報:service002.xml
<?xml version="1.0" encoding="UTF-8" ?>
<Service name="service002" type="ftpsend" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esi-service.xsd">
    <PropertyList>
        <Property name="dirname">/FTPhome/</Property>
        <Property name="filename">senddata_$[DATE].dat</Property>
        <Property name="sendackfile">true</Property>
        <Property name="ackdirname">/FTPhome/</Property>
        <Property name="ackfilename">$[FILENAME].ack</Property>
        <Property name="hostname">127.0.0.1</Property>
        <Property name="port">21</Property>
        <Property name="username">user</Property>
        <Property name="password" secret="true">password</Property>
        <Property name="merge">0</Property>
        <Property name="overwrite">true</Property>
        <Property name="statuscheck">true</Property>
        <Property name="jmsr.messageAccumulate">true</Property>
    </PropertyList>
</Service>
表C.14 定義項目

キー名

説明

指定例

Service

name

サービス名を指定します

service002

type

“ftpsend”(シーケンスの実行結果をFTP送信)を指定します。

ftpsend

Property

dirname

送信先のディレクトリ名を指定します。
デフォルトは、“./”(ログイン時のカレント・ディレクトリ)です。
ディレクトリ名には、アスキーコードを指定してください。

/FTPhome/

filename

送信先のファイル名を指定します。
ファイル名にはアスキーコードを指定してください。
埋込み文字列“$[DATE]”、“$[SEQNAME]”を指定できます。

senddata_$[DATE].dat

sendackfile

送信完了ファイルを転送するかどうかを指定します。以下のどちらかを指定します。

  • true
    転送します。

  • false
    転送しません。

true

ackdirname

送信する完了ファイルのディレクトリを指定します。
デフォルトは、“./”(ログイン時のカレント・ディレクトリ)です。ディレクトリ名には、アスキーコードを指定してください。

/FTPhome/

ackfilename

送信する完了ファイルのファイル名を指定します。ファイル名にはアスキーコードを指定してください。
埋込み文字列“$[FILENAME]”を指定すると、[filename]で指定したファイル名に置き換えられます。

$[FILENAME].ack
“senddata_$[DATE].dat.ack”になります。

hostname

接続先のサーバ名、またはIPアドレスを指定します。

127.0.0.1

port

接続先のポート番号を指定します。標準は、“21”です。

21

username

接続サーバのログインユーザ名を指定します。

user

password

接続サーバのログインパスワードを指定します。

password

  

secret

プロパティの情報(パスワードなど)を暗号化するかどうかを指定します。

  • true:暗号化する

  • false:暗号化しない

true

merge

ファイルを集約するかどうかを指定します。

  • 0:ファイルをすべて集約して送信(デフォルト)

  • 1:ファイルを集約せず、1ファイルずつ送信

0

overwrite

送信先に同一のファイル名が存在した場合、上書きするかどうかを指定します。

  • true:上書き保存する(デフォルト)

  • false:上書き保存しない

true

statuscheck

ファイル転送結果を確認するかどうかを指定します。

  • true:転送が成功したかどうかを確認する(デフォルト)

  • false:転送が成功したかどうかを確認しない

通常は“true”を指定してください。
転送先のファイル一覧を取得し、転送結果を確認します。転送先のFTPサーバがlsコマンドをサポートしていない場合は、“false”を指定してください。

true

jmsr.messageAccumulate

メッセージを蓄積するかどうかを指定します。

  • true:蓄積する(デフォルト)

  • false:蓄積しない

true

注意

  • FTPのファイル転送モードには、アスキー転送モードとバイナリ転送モードの2つがあります。ISIでは、バイナリ転送だけをサポートしています。

  • statuscheckプロパティが“false”の場合は、転送結果の確認は行われません。書き込み権限がないなどの理由でファイル転送に失敗している場合でも、esiftpsendコマンドは正常終了します。

  • Interstage CollaborationRing 業務連携機能(内蔵FTP集信監視機能)を利用してEAIと連携する場合には、statuscheckプロパティを“false”にし、かつoverwriteプロパティを“true”にしてください。