ユーザー モジュールを処理する MFFTP

トピック「パラメーター ブロック」で指定されたパラメーター ブロックは、ユーザー モジュールに渡されます。

最低でも、INIT 関数に戻りコードを設定し、呼び出しを返します。これによって、ユーザー モジュールは MFFTP を呼び出せるようになります。ユーザー モジュールがその他の初期化を必要とする場合、この時点で必要なパラメーターを指定する必要があります。

CALL 関数で、ユーザー モジュールは通常の処理を行う必要があります。モジュールは、4 つの一意のファイル名を渡します。その内、2 つは MFFTP が必要としており、他の 2 つはこのモジュールが使用する可能性があります。

これらの名前を使用する必要はありませんが、ファイルをロックせずに並行実行するには、Enterprise Server 環境内で一意である必要があります。

「PASS-IP」(ftpxxxxx.snnn.ip) は動的に作成されるテキスト ファイルで、MFFTP によってチェックと再フォーマットが行われたコントロール カードが含まれます。最低でも、ファイルには、以下の 4 つのレコードを含める必要があります。

MFFTP は、指定された印刷ファイルにこのファイルを書き込むため、ユーザー モジュールではクライアントからの出力をこのファイルに書き込みます。クライアントがこのファイルに直接書き込みを行うこともできますが、クライアントは中間ファイルに書き込みを行い、ユーザー モジュールで、ユーザー ID、パスワードなどの機密情報をマスキングするなど、出力に編集を加えることもできます。

2 つのサンプル モジュールが提供されています。

この 2 つのサンプル モジュールは、%ProgramFiles(x86)%\Micro Focus\Enterprise Developer\src$COBDIR/src/enterpriseserver/exit ディレクトリにあります。

クライアントが異なると、要件も異なる可能性が高くなります。Micro Focus では、このオプションを使用する場合、元のファイルを修正するのではなく、新しいモジュールを作成してゼロから始めるか、サンプル モジュールの 1 つをコピーすることを推奨しています。

制御変数にアクセスするには、DISPLAY ENVIRONMENT-NAME / ACCEPT ENVIRONMENT-VALUE メソッドを使用するのではなく、MFFTP12 を呼び出す必要があります。なぜなら、変数が ENVVAR DD 文を使用して設定されているか、FTP.DATA データセットで構成されている場合、それは環境スペース内に存在しないためです。

変数を取得するには、以下のように MFFTP12 を呼び出します。

01  ws-var-name                             pic x(32). 
01  ws-var-value                            pic x(256).

move "MFFTP_var-name" to ws-var-name.
call "MFFTP12" using ws-var-name
                     ws-var-value
end-call

呼び出しの後、MFFTP が変数を検出した場合、それは 2 つ目のパラメーターに格納されます。

1 つ目のパラメーターの値が MFFTP 制御変数ではない場合、2 つ目のパラメーターの 1 バイト目が x'FF' に設定されます。