FTP clients in distributed environments do not understand mainframe dataset names. The primary goal of MFFTP is to provide a shell such that mainframe names are translated to distributed file system names and to interact with the catalog.
In addition, other functions are available to reformat data, such as converting text files, in Micro Focus line sequential format, to mainframe format, fixed or variable length records, as well as converting between character sets.
To achieve this, MFFTP goes through three phases:
Reading standard FTP control cards to create an input file for the client.
The cards are examined and certain ones are changed before being written to the client input file. Most notable of these are the GET and PUT statements. The local filename in these cases is a mainframe name which will be converted to a distributed file system name as would be seen in the catalog. If any errors occur, the program terminates.
Invoking the client.
MFFTP creates a command line and then invokes the command. The client receives the created input cards and executes them to produce an output.
Reading the output from the client.
MFFTP checks the output to ensure the commands executed correctly. If a command fails, MFFTP terminates with a non-zero return code or aborts. In addition, if files were fetched and need to be reformatted, MFFTP performs this at this point.