スクリプトを利用してファイル転送を実行するためのオブジェクトです。
| メソッド名 | 機能 | 
|---|---|
| bind | ファイル転送のイベントを登録 | 
| cancel | ファイル転送の中断 | 
| getFileData | 送受信ファイルを取得 | 
| getParam | 転送パラメータの取得 | 
| getStatus | ファイル転送状態の問い合わせ | 
| recv | ファイル受信 | 
| recvFile | ファイル受信 | 
| setParam | 転送パラメータの設定 | 
| send | ファイル送信 | 
| オブジェクト名 | 機能 | 初期値 | 
|---|---|---|
| event | イベントの発生時にbindメソッドで登録したコールバック関数に渡されるオブジェクト | - | 
注意
本オブジェクトのメソッドはF6680エミュレーション機能でのみ使用できます。
ファイル転送のイベントを登録
エミュレータセッションでファイル転送の状態が変化した際に呼び出されるコールバック関数を登録します。
●呼び出し形式
bind(type, func)
●パラメータ
| パラメータ | 説明 | 省略時の初期値 | 
|---|---|---|
| type | コールバック関数を登録するイベント名を示す文字列 | 省略できません | 
| func | コールバック関数を指定 | null | 
●リターン値
関数の呼び出しに成功するとtrueを返します。エラーが発生した場合はfalseを返します。エラーの詳細は、getErrorメソッドにより取得できます。
●JavaScriptを用いて記述した例
var dspemu = new WsmgrDspemu();  // インスタンスの作成
dspemu.fileTrance.bind('change', onStatusChange);  // コールバック関数の登録ファイル転送の中断
ファイル転送メソッドにより開始したファイル転送の中断を要求します。
●呼び出し形式
cancel()
●パラメータ
ありません
●リターン値
関数の呼び出しに成功するとtrueを返します。エラーが発生した場合は、falseを返します。エラーの詳細は、getErrorメソッドにより取得できます。
●JavaScriptを用いて記述した例
sendメソッドを参照してください。
送受信ファイルを取得
転送済みファイルデータを取得します。
ファイル転送が完了した後、このメソッドを呼び出すことで転送済みのファイルを取得することができます。
●呼び出し形式
getFileData()
●パラメータ
ありません
●リターン値
関数の呼び出しに成功すると転送が完了したファイルデータをオブジェクトとして返します。エラーが発生した場合は、nullを返します。
ファイルデータの型はsetParamにより指定されたdataTypeプロパティによって変わります。
| dataTypeプロパティ値 | 型情報 | 
|---|---|
| 'text' | 文字列型 | 
| 'binary' | バイト配列 | 
●JavaScriptを用いて記述した例
recvメソッドを参照してください。
転送パラメータの取得
ファイル転送のパラメータを取得します。
●呼び出し形式
getParam(key)
●パラメータ
| パラメータ | 説明 | 省略時の初期値 | 
|---|---|---|
| key | プロパティ名を指定 | 省略できません | 
●プロパティ一覧
| プロパティ名 | 説明 | 
|---|---|
| 'ebcdicConvType' | テキスト転送データの1バイトコード変換種別 | 
| 'dataType' | 転送データの形式 | 
| 'recordType' | ホストデータセットのレコード形式 | 
| 'recordLength' | ホストデータセットのレコード長(単位:バイト) | 
| 'tab' | テキスト送信データ中に存在するTABコードをホストの空白文字(X'40')に置き換える際の空白文字数 | 
| 'exKanji' | JEF拡張漢字に対するコード変換方法 | 
| 'receiveType' | ホストデータセットのレコード形式 | 
| 'timeout' | send/recv/cancelメソッドを実行する際の、ホストからの応答待ち時間(単位:秒) | 
●リターン値
関数の呼び出しに成功するとキーに対する値を文字列で返します。値が設定されていないパラメータは空文字('')を返します。エラーが発生した場合はnullを返します。エラーの詳細は、getErrorメソッドにより取得できます。
参考
リターン値の詳細は、「■setParam」の「●プロパティ一覧」を参照してください。
●JavaScriptを用いて記述した例
send/recvメソッドを参照してください。
ファイル転送状態の問い合わせ
ファイル転送メソッドにより開始したファイル転送の現在の状態を取得します。
状態変化を監視したい場合はbindメソッドを使用してください。
bindメソッドにて登録したコールバック関数内で使用する場合は、パラメータとして渡されたFileTrans.eventオブジェクトのメソッドとして使用することで、イベント発生時の状態を取得することができます。
●呼び出し形式
getStatus(type)
●パラメータ
| パラメータ | 説明 | 省略時の初期値 | 
|---|---|---|
| type | 状態の種別を指定 | 省略できません | 
●状態種別一覧
| 状態種別 | 説明 | 
|---|---|
| 'transCode' | ファイル転送の戻り値 | 
| 'totalDataSize' | 全転送データサイズ(単位:バイト) | 
| 'transDataSize' | 転送済みデータサイズ(単位:バイト) | 
| 'recvRecordType' | 受信情報・レコード形式 | 
| 'recvRecordLength' | 受信情報・レコード長(単位:バイト) | 
| 'codeConvertErrors' | コード変換エラー数 | 
●ファイル転送の戻り値一覧
| 戻り値 | 説明 | 
|---|---|
| -1 | コード変換エラーが発生しました。ファイル転送は継続します。 | 
| 1 | <正常>ファイル転送がスタートしました。 | 
| 2 | <正常>ファイル転送中。転送済みバイト数・・・。 | 
| 3 | <正常>ファイル転送が完了しました。 | 
| 4 | レコード長を超えたレコードがありました。 | 
| 5 | ファイルの指定が無効です。 | 
| 9 | 物理ディスクの読み取りエラー。 | 
| 12 | 物理ディスクの書き込みエラー。 | 
| 18 | オプションの指定が正しくありません | 
| 27 | ホストとの通信順序エラーです。 | 
| 43 | オプションの値が正しくありません。 | 
| 97 | ファイル転送中にエラーが発生しました。 | 
●リターン値
関数の呼び出しに成功すると状態種別に対応する値を数値で返します。エラーが発生した場合はnullを返します。
●JavaScriptを用いて記述した例
send/recvメソッドを参照してください。
ファイル受信
ファイル受信処理を開始します。受信したファイルデータはgetFileData()を使用して取得します。
参考
メソッドの発行により、ファイル転送は次の手順で開始されます。
recvメソッド実行
キー入力可能状態の待ち合わせ
ファイル転送コマンドの入力
ファイル転送開始の待ち合わせ
recvメソッド復帰
正常復帰の場合、ファイル転送開始
●呼び出し形式
recv(hostCommand)
●パラメータ
| パラメータ | 説明 | 省略時の初期値 | 
|---|---|---|
| hostCommand | ホストのファイル転送コマンドを80バイト以内の文字列で指定 | 省略できません | 
●リターン値
関数の呼び出しに成功するとtrueを返します。エラーが発生した場合はfalseを返します。エラーの詳細は、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 + 'が発生しました');
    }
}ファイル受信
受信ファイルパスを指定して、ファイル受信処理を開始します。
このメソッドをクライアントで使用した場合は、クライアントへのファイルのダウンロードを行います。
参考
メソッドの発行により、ファイル転送は次の手順で開始されます。
recvメソッド実行
キー入力可能状態の待ち合わせ
ファイル転送コマンドの入力
ファイル転送開始の待ち合わせ
recvメソッド復帰
正常復帰の場合、ファイル転送開始
●呼び出し形式
recvFile(hostCommand, filePath)
●パラメータ
| パラメータ | 説明 | 省略時の初期値 | 
|---|---|---|
| hostCommand | ホストのファイル転送コマンドを80バイト以内の文字列で指定 | 省略できません | 
| filePath | ホスト転送するファイルへのフルパスを指定 | 省略できません | 
●リターン値
関数の呼び出しに成功するとtrueを返します。エラーが発生した場合はfalseを返します。エラーの詳細は、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(key, value)
●パラメータ
| パラメータ | 説明 | 省略時の初期値 | 
|---|---|---|
| key | プロパティ名を指定 | 省略できません | 
| value | プロパティに設定する値を指定 nullを指定した場合、プロパティ未設定状態(空文字'')が設定されます。 ファイル転送実行時にプロパティが未設定状態の場合は、プロパティ一覧の初期値が設定されます。 | 省略できません | 
●プロパティ一覧
| プロパティ名 | 説明 | 初期値 | |
|---|---|---|---|
| 送信 | 受信 | ||
| 'ebcdicConvType' | テキスト転送データの1バイトコード変換種別 | 'default' | 'default' | 
| 'dataType' | 転送データの形式 | 'text' | 'text' | 
| 'recordType' | ホストデータセットのレコード形式 本プロパティ値を変更した場合、ホストデータセットのレコード長は初期値が設定されます | 'variable' | - | 
| 'recordLength' | ホストデータセットのレコード長(単位:バイト) | 128 | - | 
| 'tab' | テキスト送信データ中に存在するTABコードをホストの空白文字(X'40')に置き換える際の空白文字数 | 8 | - | 
| 'exKanji' | JEF拡張漢字に対するコード変換方法 | false | - | 
| 'receiveType' | ホストデータセットのレコード形式 | - | 'new' | 
| 'timeout' | send/recv/cancelメソッドを実行する際の、ホストからの応答待ち時間(単位:秒)  | 30 | 30 | 
注意
recordLengthプロパティを設定後に、recordTypeプロパティを設定した場合、recordLengthプロパティはプロパティ未設定状態(空文字'')に戻ります。
●リターン値
関数の呼び出しに成功するとtrueを返します。エラーが発生した場合はfalseを返します。エラーの詳細は、getErrorメソッドにより取得できます。
●JavaScriptを用いて記述した例
send/recvメソッドを参照してください。
ファイル送信
ファイルデータを指定してファイル送信処理を開始します。
参考
メソッドの発行により、ファイル転送は次の手順で開始されます。
sendメソッド実行
キー入力可能状態の待ち合わせ
ファイル転送コマンドの入力
ファイル転送開始の待ち合わせ
sendメソッド復帰
正常復帰の場合、ファイル転送開始
●呼び出し形式
send(hostCommand, fileData)
●パラメータ
| パラメータ | 説明 | 省略時の初期値 | 
|---|---|---|
| hostCommand | ホストのファイル転送コマンドを80バイト以内の文字列で指定 | 省略できません | 
| fileData | ホストに転送するファイルデータを指定 | 省略できません | 
●リターン値
関数の呼び出しに成功するとtrueを返します。エラーが発生した場合はfalseを返します。エラーの詳細は、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 + 'が発生しました');
    }
}