Closed RichyMueller closed 11 months ago
Hi @RichyMueller , trying to provide some hints:
zAppBuild has multiple ways to build source code:
In app architectures, which use dynamic calls, you can just map your source code to Cobol.groovy (via dbb.scriptMapping
) to perform compile and link in a single step. To pass in specific overwrites for a type (or a member), you can use the cobol_linkEditStream
property: https://github.com/IBM/dbb-zappbuild/blob/85e0df0ed7d693457473303ba5873524bb5f7797/samples/application-conf/Cobol.properties#L47-L49
In architectures with a lot of static calls and/or static link cards which are part of your repository, you can configure/parametrise Cobol.groovy just to produce the OBJ and use LinkEdit.groovy to process the link card, like in the MortgageApplication sample: epsmlist.lnk is mapped (via dbb.scriptMapping
) to the LinkEdit.groovy language script. For the "included" modules (in this case epsmlist and epsnbrvl), the compile step is configured to just produce the object deck. These overrides are configured in file.properties, but you can also set the overall default in Cobol.properties.
In the second case, DBB is capable to automatically detect that there is a dependency between the source code and the link card. This dependency is captured by scanning the load module for its CSECTs. So you can expect in pipeline builds that, when you change the source, the link card will be automatically added to the build list.
Please also have a read of the File Property Management in zAppBuild and DBB.
As you might have seen in the code, today's implementation of the COBOL language script is not checking if a link card exists and then uses it (The way of your question/description implies that this your expectation?)
@RichyMueller and I had a offline conversation on this and resolved the issue, which was more about how zAppBuild is operating with link card managed in the version control system.
I am closing this issue. Feel free to your the discussion board of zAppBuild or reach out to us if you need a hand.
Hi,
for a PoC we installed DBB. We are using Endevor for production system, but want to move to DBB We customized a vscode environment and are now investigating and learning about building cobol programms with zAppbuild and DBB.
Simple compiles are running so far. Now we are at a point we try for some days to link edit a programm with further link cards.
First we have a third party lib with several stubs we want to link to the cobol programm. Were can I put the 3rd party lib ?
I put the special third party lib in the LinkEdit.properties
linkedit_linkEditSyslibConcatenation=3rdpartylib Is this the right place ?
Up to now I did noit find out how to configure the various property files to use the link card for the special programm
In Endevor it is like this: Complie EPP10000 and then link edit it with
INCLUDE SZDTLOAD(DTSTUB) this is the 3rd party lib. Behind the SZDTLOAD is a pds with different stubs .
ALIAS EPP10000
ALIAS EPP10001
ALIAS EPP10002
ALIAS EPP10003
We generate a lot of aliases for the above programm. But how can I route the above sample link card to the LinkEdit.groovy.
We use some cobol programs which are invoking Java classes.
Were can I put the java classes for the linker In Endevor we use link cards for the related programs like the following :
INCLUDE '/usr/lpp/java/J8.0/bin/j9vm/libjvm.x' INCLUDE '/AWA5/m/cobol/v64/lib/igzcjava.x'
MODE AMODE(31),RMODE(ANY)
I would ask for help/advice how to configure aplication and build properties to use link cards for several programms.
I am reading the documents since days but did not understand how to route linkcards to the linkEdit
Thanks