View previous topic :: View next topic
|
Author |
Message |
tushar_study
New User
Joined: 01 Feb 2007 Posts: 30 Location: Mumbai
|
|
|
|
Hi ,
Can anyone guide on this:
I need to call a COBOL-DB2 subprogram from my COBOL-DB2 main program.How do I give a call,how will the parameters be passed and is there any special declaration to be made in the subprogram?
Regards,
Tushar |
|
Back to top |
|
|
UmeySan
Active Member
Joined: 22 Aug 2006 Posts: 771 Location: Germany
|
|
|
|
Hi !
First of all, if you take a search through the forum, you will find a lot of examples.
Cobol/Db2 calls Cobol/DB2 -> nothing else than Cobol calls Cobol
Parameters are passed normaly via Linkage or External-CopyBook
Regards, UmeySan
Normal Example:
Fields are declared in normal CopyBooks
In Calling-Program (Main-Programm)
...Call with Params
C40-CALL-MDL60040 SECTION.
MOVE 'C40-MDL60040' TO FTEXT4
*---------------------------------------------------------
CALL 'MDL60040' USING MZPN-KOPF-DATEN
MZPN-AZ-SPEZIFISCHE-DATEN
MZPN-IFRS-ALLGEMEINE-DATEN
MZPN-ERGEBNIS-KOPF-DATEN
MZPN-ERGEBNIS-CASHFLOW-DATEN
MZPN-ERGEBNIS-BEWERTUNG-ALLG
END-CALL
*---------------------------------------------------------
MOVE SPACES TO FTEXT4.
C40-CALL-MDL60040-EXIT.
EXIT.
In Called-Program (Sub-Programm)
...the fields are declared in Linkage
LINKAGE SECTION.
01 MZPN-KOPF-DATEN.
COPY CMP10000.
01 MZPN-AZ-SPEZIFISCHE-DATEN.
COPY CMP10060.
01 MZPN-IFRS-ALLGEMEINE-DATEN.
COPY CMP10008.
01 MZPN-ERGEBNIS-KOPF-DATEN.
COPY CMP10100
REPLACING ==A:==
BY ==ERG-==.
01 MZPN-ERGEBNIS-CASHFLOW-DATEN.
COPY CMP10101
REPLACING ==A:==
BY ==ERG-==.
01 MZPN-ERGEBNIS-BEWERTUNG-ALLG.
COPY CMP10102
REPLACING ==A:==
BY ==ERG-==.
PROCEDURE DIVISION USING MZPN-KOPF-DATEN
MZPN-AZ-SPEZIFISCHE-DATEN
MZPN-IFRS-ALLGEMEINE-DATEN
MZPN-ERGEBNIS-KOPF-DATEN
MZPN-ERGEBNIS-CASHFLOW-DATEN
MZPN-ERGEBNIS-BEWERTUNG-ALLG.
Call with use of external CopyBook
Main-Programm:
Working-Storage
...here the CopyBooks are declared
COPY CIPUFMSG. ...this one is an external book
...in Procedure-Division normal Call statement without Params
F50-WRITE-IFRS-MESSAGES SECTION.
MOVE 'F50-WRT-IFR-MSG' TO FTEXT4
*----------------------------------------------
IF COM-ERGS-TYP-IFRS NOT = ZERO
CALL 'MDL60120' END-CALL
END-IF
*----------------------------------------------
MOVE SPACES TO FTEXT4.
F50-WRITE-IFRS-MESSAGES-EXIT.
Sub-Programm:
Working-Storage
...here the CopyBooks are declared
COPY CIPUFMSG. ...this one is an external book
LINKAGE SECTION.
...nothing needed
PROCEDURE DIVISION.
...normal cobol handling
S00-STEUERUNG SECTION.
MOVE 'S00-STEUERUNG' TO FTEXT0
-------------------------------------------------
PERFORM A05-VORLAUF
IF MDL60120-WEITER
PERFORM F05-VERARBEITUNG
END-IF
PERFORM Z05-NACHLAUF
-------------------------------------------------
MOVE SPACES TO FTEXT0.
S00-STEUERUNG-EXIT.
External Books:
IER1337.$$NDVR$$.WORK(CIPUFMSG)
01 IFP-MSG-MESSAGES EXTERNAL.
10 MSG-VERARB-ART PIC X(004).
10 MSG-FILLER-001 PIC X(001).
10 MSG-VERARB-CDE PIC X(002).
10 MSG-FILLER-002 PIC X(001).
10 MSG-VERARB-KTO PIC X(010).
10 MSG-FILLER-003 PIC X(001).
10 MSG-VERARB-COD PIC X(004).
10 MSG-FILLER-005 PIC X(001).
10 MSG-VERARB-MSG PIC X(108).
By use of external books, no parms are used by call-statement.
The book must be present in both programms. |
|
Back to top |
|
|
|