ユーザー モジュールを処理する 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 (Windows) or $COBDIR/src/enterpriseserver/exit (UNIX) ディレクトリにあります。

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

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

変数を取得するには、以下のように 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’ に設定されます。