Calling C Program from within Lawson COBOL

 1 Replies
 0 Subscribed to this topic
 17 Subscribed to this forum
Sort:
Author
Messages
skitobite
New Member Send Private Message
Posts: 1
New Member
Is there a way to call a "C" Program from Lawson COBOL. The "C" Executable and Source Code resides within a common directory on the Unix Box. Any documentation would be appreciated. 
Jill
Basic Member Send Private Message
Posts: 7
Basic Member
A lot of our custom programs call UNIX shell scripts from Lawson COBOL.  You could probably try the same concept to call a C program.
 
Add WS-SYSTEM-COMMAND to WS file...
           02  WS-SYSTEM-COMMAND       PIC X(80) VALUE SPACES.
 
In 100-PROGRAM-CONTROL section of PD file...
 
           MOVE SPACES TO WS-SYSTEM-COMMAND.
           STRING "ksh /u02/app/custom/lhrc/bin/xf110.ksh"
           " "                        DELIMITED BY SIZE
           PRM-FR-DATE-STAMP          DELIMITED BY SIZE
           " "                        DELIMITED BY SIZE
           PRM-TO-DATE-STAMP          DELIMITED BY SIZE
                                      INTO WS-SYSTEM-COMMAND.
 
           CALL "system" USING WS-SYSTEM-COMMAND.
 
where /u02/app/custom/lhrc/bin/xf110.ksh is the ksh script we're calling and PRM-FR-DATE-STAMP and PRM-TO-DATE-STAMP are the parameters you want to pass to the program.  When the token runs, Lawson always adds the full print output directory at the end of the system call.
 
I think the "Run Type" in pgmdef needs to be "Prototyped And 4G/L" in LSF9.  I don't think it matters in Env 8.
 
Good luck!