ページの先頭行へ戻る
WSMGR for Web V7.2 使用手引書L40
FUJITSU Software

31.4.16 fileTrans/FileTransオブジェクト

スクリプトを利用してファイル転送を実行するためのオブジェクトです。

メソッド名

機能

Javascritp

VB/C#

bind

-

ファイル転送のイベントを登録

cancel

Cancel

ファイル転送の中断

getFileData

GetFileData

送受信ファイルを取得

getParam

GetParam

転送パラメータの取得

getStatus

GetStatus

ファイル転送状態の問い合わせ

recv

Recv

ファイル受信

recvFile

RecvFile

ファイル受信

setParam

SetParam

転送パラメータの設定

send

Send

ファイル送信

-

SendFile

ファイル送信


オブジェクト

機能

初期値

JavaScript

VB/C#

event

-

イベントの発生時にbindメソッドで登録したコールバック関数に渡されるオブジェクト

-


注意

本オブジェクトのメソッドはF6680エミュレーション機能でのみ使用できます。


bind

ファイル転送のイベントを登録

エミュレータセッションでファイル転送の状態が変化した際に呼び出されるコールバック関数を登録します。


●呼び出し形式

bind(type, func)

●パラメータ

パラメータ

説明

省略時の初期値

type

コールバック関数を登録するイベント名を示す文字列
'change':ファイル転送の状態変化

省略できません

func

コールバック関数を指定
typeで指定したイベントに登録された関数を解除する場合は null を指定

null


●リターン値

関数の呼び出しに成功するとtrueを返します。エラーが発生した場合はfalseを返します。エラーの詳細は、getError/GetErrorメソッドにより取得できます。


●JavaScriptを用いて記述した例

var dspemu = new WsmgrDspemu();  // インスタンスの作成
dspemu.fileTrance.bind('change', onStatusChange);  // コールバック関数の登録

cancel/Cancel

ファイル転送の中断

ファイル転送メソッドにより開始したファイル転送の中断を要求します。


●呼び出し形式

cancel()

●パラメータ

ありません


●リターン値

関数の呼び出しに成功するとtrueを返します。エラーが発生した場合は、falseを返します。エラーの詳細は、getError/GetErrorメソッドにより取得できます。


●JavaScriptを用いて記述した例

sendメソッドを参照してください。


getFileData/GetFileData

送受信ファイルを取得

転送済みファイルデータを取得します。

ファイル転送が完了した後、このメソッドを呼び出すことで転送済みのファイルを取得することができます。


●呼び出し形式

getFileData()

●パラメータ

ありません


●リターン値

関数の呼び出しに成功すると転送が完了したファイルデータをオブジェクトとして返します。エラーが発生した場合は、nullを返します。

ファイルデータの型はsetParamにより指定されたdataTypeプロパティによって変わります。

dataTypeプロパティ値

型情報

'text'

文字列型

'binary'

バイト配列


●JavaScriptを用いて記述した例

recvメソッドを参照してください。


getParam/GetParam

転送パラメータの取得

ファイル転送のパラメータを取得します。


●呼び出し形式

getParam(key)

●パラメータ

パラメータ

説明

省略時の初期値

key

プロパティ名を指定
指定可能なプロパティ名はプロパティ一覧を参照

省略できません


プロパティ一覧

プロパティ名

説明

'ebcdicConvType'

テキスト転送データの1バイトコード変換種別

'dataType'

転送データの形式

'recordType'

ホストデータセットのレコード形式

'recordLength'

ホストデータセットのレコード長(単位:バイト)

'tab'

テキスト送信データ中に存在するTABコードをホストの空白文字(X'40')に置き換える際の空白文字数

'exKanji'

JEF拡張漢字に対するコード変換方法

'receiveType'

ホストデータセットのレコード形式

'timeout'

send/recv/cancelメソッドを実行する際の、ホストからの応答待ち時間(単位:秒)


●リターン値

関数の呼び出しに成功するとキーに対する値を文字列で返します。値が設定されていないパラメータは空文字('')を返します。エラーが発生した場合はnullを返します。エラーの詳細は、getError/GetErrorメソッドにより取得できます。


参考

リターン値の詳細は、「■setParam/SetParam」の「●プロパティ一覧」を参照してください。

●JavaScriptを用いて記述した例

send/recvメソッドを参照してください。


getStatus/GetStatus

ファイル転送状態の問い合わせ

ファイル転送メソッドにより開始したファイル転送の現在の状態を取得します。

状態変化を監視したい場合はbindメソッドを使用してください。
bindメソッドにて登録したコールバック関数内で使用する場合は、パラメータとして渡されたFileTrans.eventオブジェクトのメソッドとして使用することで、イベント発生時の状態を取得することができます。


●呼び出し形式

getStatus(type)

●パラメータ

パラメータ

説明

省略時の初期値

type

状態の種別を指定
指定可能な状態の種別は状態種別一覧を参照

省略できません


状態種別一覧

状態種別

説明

'transCode'

ファイル転送の戻り値
戻り値の詳細はファイル転送の戻り値一覧を参照

'totalDataSize'

全転送データサイズ(単位:バイト)

'transDataSize'

転送済みデータサイズ(単位:バイト)

'recvRecordType'

受信情報・レコード形式
1:variable(可変長)
2:fixed(固定長)

'recvRecordLength'

受信情報・レコード長(単位:バイト)

'codeConvertErrors'

コード変換エラー数


ファイル転送の戻り値一覧

戻り値

説明

-1

コード変換エラーが発生しました。ファイル転送は継続します。

1

<正常>ファイル転送がスタートしました。

2

<正常>ファイル転送中。転送済みバイト数・・・。

3

<正常>ファイル転送が完了しました。

4

レコード長を超えたレコードがありました。

5

ファイルの指定が無効です。
・ファイルが指定されていない。
・ファイル名長オーバー。

9

物理ディスクの読み取りエラー。
・送信ファイルが見つかりません。
・送信ファイルがクローズできません。
・ファイルの読込みに失敗しました。
・指定されたドライブ番号は無効です。
・ドライブの準備が出来ていません。

12

物理ディスクの書き込みエラー。
・新規入れ替え指定で受信ファイルが作成できません。
・格納ファイルが見つかりません。
・ディスクの空き領域が足りません。
・受信ファイルがクローズできません。
・ファイルの書込みに失敗しました。
・指定されたドライブ番号は無効です。
・ドライブの準備が出来ていません。

18

オプションの指定が正しくありません

27

ホストとの通信順序エラーです。

43

オプションの値が正しくありません。

97

ファイル転送中にエラーが発生しました。
・DFインターフェイスが異常終了しました。
・圧縮変換エラーが発生しました。
・指定要求が実行できません。


●リターン値

関数の呼び出しに成功すると状態種別に対応する値を数値で返します。エラーが発生した場合はnullを返します。


●JavaScriptを用いて記述した例

send/recvメソッドを参照してください。


recv/Recv

ファイル受信

ファイル受信処理を開始します。受信したファイルデータはgetFileData()を使用して取得します。


参考

メソッドの発行により、ファイル転送は次の手順で開始されます。

  1. recvメソッド実行

    • キー入力可能状態の待ち合わせ

    • ファイル転送コマンドの入力

    • ファイル転送開始の待ち合わせ

  2. recvメソッド復帰

  3. 正常復帰の場合、ファイル転送開始


●呼び出し形式

recv(hostCommand)

●パラメータ

パラメータ

説明

省略時の初期値

hostCommand

ホストのファイル転送コマンドを80バイト以内の文字列で指定

省略できません


●リターン値

関数の呼び出しに成功するとtrueを返します。エラーが発生した場合はfalseを返します。エラーの詳細は、getError/GetErrorメソッドにより取得できます。


●JavaScriptを用いて記述した例

var dspemu = new WsmgrDspemu();
// ファイル転送パラメータオブジェクトの設定
dspemu.fileTrans.setParam('ebcdicConvType', 'default');
dspemu.fileTrans.bind('change',onFileTransStatusChange); 

// ファイル受信処理を開始
dspemu.fileTrans.recv('FIMPORT AAA');
setTimeout(function(){
    // 60秒後にファイル転送処理を中断します
    if(dspemu.fileTrans.getStatus('transCode') == 2) {
        dspemu.fileTrans.cancel();
    }
}, 60000);

// ファイル転送の状態変化イベントコールバック関数
function onFileTransStatusChange(e) {
    var status = e.getStatus('transCode');
    if(status == 2 || status == 3)) {
        var total = e.getStatus('totalDataSize');  // トータルサイズ
        var trans = e.getStatus('transDataSize');  // 転送済みサイズ
        var codeErr = e.getStatus('codeConvertErrors');  // コード変換エラー数
        if(window.console) {
            console.log('転送率:' + trans + '/' + total + '\nコード変換エラー数(' + codeErr + ')'); 
        }
        if(status == 3) {
            // ファイル転送完了
            var fileData = e.fileTrans.getFileData();
            if(window.console) {
                console.log('転送が完了しました。');
            }
            // テキストファイルの場合は内容を出力
            if(e.fileTrans.getParam('dataType') == 'text') {
                if(window.console) {
                    console.log('受信データ:\n' + fileData);
                }
            }
        }
    } else {
        e.dspemu.macro.MsgBox('エラー番号:' + sutatus + 'が発生しました');
    }
}

recvFile/RecvFile

ファイル受信

受信ファイルパスを指定して、ファイル受信処理を開始します。
このメソッドをクライアントで使用した場合は、クライアントへのファイルのダウンロードを行います。


参考

メソッドの発行により、ファイル転送は次の手順で開始されます。

  1. recvメソッド実行

    • キー入力可能状態の待ち合わせ

    • ファイル転送コマンドの入力

    • ファイル転送開始の待ち合わせ

  2. recvメソッド復帰

  3. 正常復帰の場合、ファイル転送開始


●呼び出し形式

recvFile(hostCommand, filePath[, page])

●パラメータ

パラメータ

説明

省略時の初期値

hostCommand

ホストのファイル転送コマンドを80バイト以内の文字列で指定

省略できません

filePath

ホスト転送するファイルへのフルパスを指定
クライアントスクリプトではファイル名を指定

省略できません

page

アプリケーションで保持している
System.Web.HttpContextのPageを指定
このパラメータはサーバスクリプトでのみ使用可能

ダウンロードを行いません


参考

サーバスクリプトでpageパラメータを指定すると、転送完了後にファイルをクライアントにダウンロードします。


●リターン値

関数の呼び出しに成功するとtrueを返します。エラーが発生した場合はfalseを返します。エラーの詳細は、getError/GetErrorメソッドにより取得できます。


●JavaScriptを用いて記述した例

var dspemu = new WsmgrDspemu();
// ファイル転送パラメータオブジェクトの設定
dspemu.fileTrans.setParam('ebcdicConvType', 'default');
dspemu.fileTrans.bind('change',onFileTransStatusChange); 

// ファイル受信処理を開始
dspemu.fileTrans.recvFile('FIMPORT AAA', 'zaiko.csv');
setTimeout(function(){
    // 60秒後にファイル転送処理を中断します
    if(dspemu.fileTrans.getStatus('transCode') == 2) {
        dspemu.fileTrans.cancel();
    }
}, 60000);

// ファイル転送の状態変化イベントコールバック関数
function onFileTransStatusChange(e) {
    var status = e.getStatus('transCode');
    if(status == 2 || status == 3)) {
        var total = e.getStatus('totalDataSize');  // トータルサイズ
        var trans = e.getStatus('transDataSize');  // 転送済みサイズ
        var codeErr = e.getStatus('codeConvertErrors');  // コード変換エラー数
        if(window.console) {
            console.log('転送率:' + trans + '/' + total + '\nコード変換エラー数(' + codeErr + ')'); 
        }
        if(status == 3) {
            // ファイル転送完了
            if(window.console) {
                console.log('転送が完了しました。');
            }
        }
    } else {
        e.dspemu.macro.MsgBox('エラー番号:' + sutatus + 'が発生しました');
    }
}

setParam/SetParam

転送パラメータの設定

ファイル転送のパラメータを設定します。


●呼び出し形式

setParam(key, value)

●パラメータ

パラメータ

説明

省略時の初期値

key

プロパティ名を指定
指定可能なプロパティ名はプロパティ一覧を参照

省略できません

value

プロパティに設定する値を指定
指定可能なプロパティ値はプロパティ一覧を参照

nullを指定した場合、プロパティ未設定状態(空文字'')が設定されます。

ファイル転送実行時にプロパティが未設定状態の場合は、プロパティ一覧の初期値が設定されます。

省略できません


プロパティ一覧

プロパティ名

説明

初期値

送信

受信

'ebcdicConvType'

テキスト転送データの1バイトコード変換種別
'kana':EBCDIC-カナ有り
'nokana':EBCDIC-カナ無り
'ascii':EBCDIC-ASCII
'default':デフォルト

'default'

'default'

'dataType'

転送データの形式
'text':テキスト形式
'binary':バイナリ形式

'text'

'text'

'recordType'

ホストデータセットのレコード形式
'variable':可変長
'fixed':固定長

本プロパティ値を変更した場合、ホストデータセットのレコード長は初期値が設定されます

'variable'

-

'recordLength'

ホストデータセットのレコード長(単位:バイト)
可変長の場合:5~4096
固定長の場合:1~4096

128

-

'tab'

テキスト送信データ中に存在するTABコードをホストの空白文字(X'40')に置き換える際の空白文字数
テキスト形式のファイル送信の場合に有効

8

-

'exKanji'

JEF拡張漢字に対するコード変換方法
true:特殊なコード変換
false:通常のコード変換
通常は設定する必要はありません

false

-

'receiveType'

ホストデータセットのレコード形式
'new':新規/入れ替え
'add':追加

-

'new'

'timeout'

send/recv/cancelメソッドを実行する際の、ホストからの応答待ち時間(単位:秒)
30~420の範囲で指定

30

30


注意

recordLengthプロパティを設定後に、recordTypeプロパティを設定した場合、recordLengthプロパティはプロパティ未設定状態(空文字'')に戻ります。


●リターン値

関数の呼び出しに成功するとtrueを返します。エラーが発生した場合はfalseを返します。エラーの詳細は、getError/GetErrorメソッドにより取得できます。


●JavaScriptを用いて記述した例

send/recvメソッドを参照してください。


send/Send

ファイル送信

ファイルデータを指定してファイル送信処理を開始します。


参考

メソッドの発行により、ファイル転送は次の手順で開始されます。

  1. sendメソッド実行

    • キー入力可能状態の待ち合わせ

    • ファイル転送コマンドの入力

    • ファイル転送開始の待ち合わせ

  2. sendメソッド復帰

  3. 正常復帰の場合、ファイル転送開始


●呼び出し形式

send(hostCommand, fileData)

●パラメータ

パラメータ

説明

省略時の初期値

hostCommand

ホストのファイル転送コマンドを80バイト以内の文字列で指定

省略できません

fileData

ホストに転送するファイルデータを指定

省略できません


●リターン値

関数の呼び出しに成功するとtrueを返します。エラーが発生した場合はfalseを返します。エラーの詳細は、getError/GetErrorメソッドにより取得できます。


●JavaScriptを用いて記述した例

var dspemu = new WsmgrDspemu();
// ファイル転送パラメータオブジェクトの設定
dspemu.fileTrans.setParam('ebcdicConvType', 'default');
dspemu.fileTrans.bind('change',onFileTransStatusChange); 

// ファイル送信処理を開始
dspemu.fileTrans.send('FEXPORT AAA', 'ホストに送信するデータ');
setTimeout(function(){
    // 60秒後にファイル転送処理を中断します
    if(dspemu.fileTrans.getStatus('transCode') == 2) {
        dspemu.fileTrans.cancel();
    }
}, 60000);

// ファイル転送の状態変化イベントコールバック関数
function onFileTransStatusChange(e) {
    var status = e.getStatus('transCode');
    if(status == 2 || status == 3)) {
        var total = e.getStatus('totalDataSize');  // トータルサイズ
        var trans = e.getStatus('transDataSize');  // 転送済みサイズ
        var codeErr = e.getStatus('codeConvertErrors');  // コード変換エラー数
        if(window.console) {
            console.log('転送率:' + trans + '/' + total + '\nコード変換エラー数(' + codeErr + ')'); 
        }
        if(status == 3) {
            // ファイル転送完了
            if(window.console) {
                console.log('転送が完了しました。');
            }
        }
    } else {
        e.dspemu.macro.MsgBox('エラー番号:' + sutatus + 'が発生しました');
    }
}

-/SendFile

ファイル送信

ファイルパスを指定してファイル送信処理を開始します。


参考

メソッドの発行により、ファイル転送は次の手順で開始されます。

  1. sendメソッド実行

    • キー入力可能状態の待ち合わせ

    • ファイル転送コマンドの入力

    • ファイル転送開始の待ち合わせ

  2. sendメソッド復帰

  3. 正常復帰の場合、ファイル転送開始


●呼び出し形式

SendFile(hostCommand, filePath)

●パラメータ

パラメータ

説明

省略時の初期値

hostCommand

ホストのファイル転送コマンドを80バイト以内の文字列で指定

省略できません

fileData

ホストに転送するファイルパスを指定

省略できません


●リターン値

関数の呼び出しに成功するとtrueを返します。エラーが発生した場合はfalseを返します。エラーの詳細は、GetErrorメソッドにより取得できます。

注意

クライアントスクリプトではSendFileメソッドを使用できません。

●C#を用いて記述した例

WsmgrDspemu dspemu = new WsmgrDspemu();
// ファイル転送パラメータオブジェクトの設定
dspemu.FileTrans.SetParam("FEXPORT AAA", @"c:\zaiko\zaiko.csv");

// マクロのWait関数を使用してファイル転送の完了を待ち合わせます
dspemu.Macro.SetWaitTime(60);
int ret = dspemu.Macro.Wait("");

// 転送状態の問い合わせ
int status = dspemu.FileTrans.GetStatus("transCode");
switch(status)
{
    case 2:
        // 転送が終わっていない場合はキャンセル
        dspemu.FileTrans.Cancel();
        break;
    case 3:
        // 転送完了時の処理
        String total = dspemu.FileTrans.GetStatus("totalDataSize");
        String trans = dspemu.FileTrans.GetStatus("transDataSize");
        String codeErr = dspemu.FileTrans.GetStatus("codeConvertErrors");
        // ...
        break;
    default: 
        // エラー処理
        break;
}