Build the call tree

Proprietary

Lay out every job, procedure, program and subprogram of the portfolio as a tree from what runs it: a job's steps, the procedure or program each step runs, the steps of that procedure, and the programs each program reaches by CALL, EXEC CICS LINK or XCTL, one row per position and depth first so the rows alone draw the tree. A step names a load module rather than a program, and where a link-edit deck says what is bound into it the module is a position of its own with every program it holds beneath it. A target named by a data item is resolved through the one literal the item is given where there is one, and flagged as dynamic either way. A tree starts from each job and from each procedure and program nothing reaches; a node already in its tree is written where it is reached again and not expanded, which is what keeps a cycle finite. Every step and every CALL, LINK and XCTL is marked.

io.moderne.mainframe.calltree.FindCallTree
mod run . --recipe=io.moderne.mainframe.calltree.FindCallTree

Install it once from Recipe actions, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.