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