/ / Връща стойност от cobol до rpg - ibm-midrange, cobol, rpgle

Връща стойност от cobol до rpg - ibm-midrange, cobol, rpgle

Обадих се на програма cobol от rpgle. Искам да върна стойност от програмата cobol на rpgle. Аз съм нов за тези и не съм сигурен дали правя по правилния начин. Може ли някой да ми обясни процедурата за това. по-долу е командата, която използвах в rpgle, за да се обадя на cobol.

callp prog(id:name);

и в кобол, използван

working storage section.
linkage section.
01 newid.
01 newname.
procedure division using newid, newname.

Ако стойностите се редактират в cobol, стойността ще бъде newid и newname да се предава автоматично на RPG или има ли друг начин? как да предадете стойността в cobol обратно на rpgle.

Отговори:

4 за отговор № 1

Имате право основите. Това би трябвало да е наред, стига да предоставяте съответстващи дефиниции на полета и в двете програми. В секцията за свързване на ILE COBOL трябва да добавите дефиницията на имената на вашите параметри. Ти нямаш PIC или LIKE клауза.

Във вашата ILE RPG програма ще трябва да дефинирате прототип за повикване към вашия COBOL код. Определенията на параметрите в прототипа трябва съответстват на формата на параметрите в COBOL. Ако използвате едностранно опаковани, двойки или двоични числа от едната страна, тогава трябва да използвате същото за този парма от другата.

(виж http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/index.jsp?topic=%2Frzase%2Fsc092540419.htm)

Например, в RPG PROG1 обикновено имате нещо като:

 D   someID                       7p 0
D   someName                    10a

D addInfo         PR                  EXTPROG("PROG2")
D                                7p 0
D                               10a

callp addInfo (someID:someName);

// or omit the optional callp opcode

addInfo (someID:someName);

След това в COBOL PROG2 може да имате нещо като:

  working storage section.
linkage section.
01 newid           pic s9(7)    packed-decimal.
01 newname         pic x(10).

procedure division using newid, newname.

Вашата най-проста опция в този момент е да компилиратеи двете като индивидуални програми. Но също така е възможно да използвате техники ILE, за да комбинирате процедурата COBOL в крайния обект на програмата RPG. Но освен това за друг път.