You can invoke any of the command line interface options from within a COBOL program by executing the following code. Other programming languages, such as C, can be used to invoke the command line as well.
IDENTIFICATION DIVISION. PROGRAM-ID. TESTCLIX. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. IBM-PC. OBJECT-COMPUTER. IBM-PC. DATA DIVISION. WORKING-STORAGE SECTION. 01 RESULT PIC X COMP-X. 01 FUNC PIC X COMP-X VALUE 35. 01 COMMAND. 05 LEN PIC X COMP-X VALUE 10. 05 PGM PIC X(10) VALUE 'MFDAS.EXE'. PROCEDURE DIVISION. DISPLAY "DIR PDS CSI01.JPD.CNTL" UPON COMMAND-LINE CALL X'91' USING RESULT FUNC COMMAND IF RESULT = 0 *> EXECUTE SUCCESSFUL CODE HERE END-IF
On return, Drag and Drop sets the COBOL RESULT variable. The following return-codes are produced:
| 00 | Successful call |
| 01 | An error was returned from MFLSC |
| 14 | The program MFLSC is missing |
| 15 | Call to DFCONV failed |
| 48 | The mainframe member is locked by another user |
| 49 | A mainframe ABEND occurred |
| 50 | A dynamic allocation error occurred when accessing a data set |
| 51 | An open error occurred on the mainframe |
| 52 | An invalid request for a valid function was detected |
| 53 | An I/O error has occurred on a mainframe data set |
| 54 | An invalid sub-code was given to the mainframe |
| 55 | A load error on a program on the mainframe was detected |
| 56 | A length error, at a record level, has been detected |
| 57 | A general security error has been detected |
| 58 | A hash code mismatch has been detected |
| 59 | The remote execution failed |
| 60 | The JES spool file is not an output file |
| 61 | The JES spool file is not a held output file |
| 100 | Syntax error in call |
| 125 | Too many concurrent users are active |
| 139 | The record length was too large |
| 218 | The DCB is not supported. This is usually caused by trying to use RECFM=U |
| 219 | The mainframe load libraries are not APF authorized |
| 220-241 | Various SAF security return codes |
| 242 | The component in use has not been activated on the mainframe |
| 243 | Unable to write the specified file to the workstation |
| 244 | Unable to read the specified file from the workstation |
| 245 | The catalog search detected an error |
| 246 | The catalog search did not yield any results |
| 247 | The /F MFENDDRV* statement was not in FHREDIR.CFG |
| 248 | The /F MFLSCDRV* statement was not in FHREDIR.CFG |
| 249 | The file FHREDIR.CFG could not be located |
| 250 | A communications failure occurred |
| 251 | The file did not have a positive length |
| 252 | An invalid mask was given |
| 253 | The local access mask was not specified |
| 254 | The local access mode was not set |
| 255 | Invalid function was requested |