You can call Rebuild from your COBOL program as follows:
call "callrb" using commands status
where:
| Parameter: | Meaning: | 
|---|---|
| commands | A PIC X(600) item containing the Rebuild command line. This item must be 600 bytes in length because Rebuild scans the command line backwards from offset 599. | 
| status | A PIC XX COMP-X item containing the returned file status. This item shows the result of the call to Rebuild. | 
When called from within a program, Rebuild does not display any of its usual messages.
If an error occurs or the rebuild is unsuccessful, RETURN-CODE contains a non-zero value and status contains the returned file status. You should always check RETURN-CODE and status after a call to Rebuild.
The possible values of RETURN-CODE are shown below.
| Value | Description | 
|---|---|
| 0 | Rebuild executed successfully | 
| 1 | An error occurred on the input file such as file not found or invalid file format - check status parameter | 
| 2 | An error occurred on the output file - check status parameter | 
| 3 | Error in sort | 
| 4 | File is corrupt | 
| 5 | Attempt to do a /k:a:exists | 
| 6 | Attempt to do a /k:r:onprime | 
| 7 | Attempt to do a /k:r:dontexist | 
| 8 | Too many duplicates on out | 
| 9 | The parameter list contained an error such as an invalid option or an invalid combination of options | 
| 10 | Rebuild has run out of memory | 
If an error occurs, execute Rebuild from the command line on the same file with a set of identical options. The screen output should give a more precise indication as to the cause of the error.
The following example shows Rebuild being called from within a COBOL program.
 01 parameters   pic x(600).
 01 status       pic xx comp-x.
   ...
     move "infile.dat,outfile.dat -s:lii -c:d1" to parameters
     call "callrb" using parameters,status
     end-call